ActionScript Learning 110114-3

1.14.2011

BetweenAS3を使った残像の表現。

BetweenAS3の_blurFilterを使用した残像の表現。

残像処理の最後で使用する、BetweenAS3.removeFromParent(_this)がとても便利。

SAMPLE VIEW CODE

package {
	
	import flash.display.*;
	import flash.events.*	
    import flash.filters.*; 
    import flash.geom.*; 
	
	import frocessing.color.*;


	public class NMain extends MovieClip {
		
		//-------------------------------------------------------------------------------- Properties

		private var _this:*;
		private var _stage:Stage;
		
		
		//-------------------------------------------------------------------------------- Constractor
		
		public function NMain() {
			
			_this = this;
			_stage = stage;
			
			_stage.scaleMode = StageScaleMode.NO_SCALE;
			_stage.align = StageAlign.TOP_LEFT;
			
			Init();
		}
		
		
		//-------------------------------------------------------------------------------- Function
		 
		/**
		 * initialize
		 */
		public function Init():void {

			initmain();
		}
		
		/**
		 * initialize main
		 */
		private var _main:MovieClip;
		private var addpnt:Point;
		private var colorhsv:ColorHSV;
		private var colcnt:int;
		private var lastpnt:Point;
		
		private function initmain():void {
			
			_main = new MovieClip();
			_main.x = Math.round(_stage.stageWidth / 2);
			_main.y = Math.round(_stage.stageHeight / 2);
			
			_this.addChild(_main);
			
			addpnt = new Point();
			lastpnt = new Point();
			
			colorhsv = new ColorHSV();
			colcnt = 0;
            colorhsv.h = colcnt;
			
			_stage.addEventListener(Event.ENTER_FRAME, mainaction);
			_stage.addEventListener(MouseEvent.MOUSE_MOVE, mainaction2);
		}
		/** */
		private function mainaction(eo:* = null):void {
			
			colorhsv.h = colcnt;
			
			var _line = new line();
			
			_main.addChild(_line);
			
            addpnt.x +=  (_main.mouseX - addpnt.x) * .4; 
            addpnt.y +=  (_main.mouseY - addpnt.y) * .4;
			
			var currentpnt = new Point();
			
			currentpnt.x = addpnt.x;
			currentpnt.y = addpnt.y;
			
			_line.Init(colorhsv.value, currentpnt, lastpnt);
			
			lastpnt = currentpnt;
		}
		/** */
		private function mainaction2(eo:* = null):void {
			
			colcnt += 1;
			if(colcnt > 360) colcnt -= 360;
		}
	}
}




package {
	
	import flash.display.*;
	import flash.events.*
	import flash.geom.*;
	
	import org.libspark.betweenas3.BetweenAS3;
	import org.libspark.betweenas3.events.TweenEvent;
	import org.libspark.betweenas3.tweens.*;
	import org.libspark.betweenas3.easing.*;


	public class line extends MovieClip {
		
		//-------------------------------------------------------------------------------- Properties

		private var _this:*;
		
		
		//-------------------------------------------------------------------------------- Constractor
		
		public function line() {
			
			_this = this;
		}
		
		
		//-------------------------------------------------------------------------------- Function
		 
		/**
		 * initialize
		 */
		public function Init(col:uint, currentpnt:Point, lastpnt:Point):void {
			
			var g = _this.graphics;
			
			g.clear();
			
			g.beginFill(col, 1);
			g.drawCircle(currentpnt.x, currentpnt.y, 60);
			g.endFill();
			
			g.lineStyle(60, col);
			g.moveTo(currentpnt.x, currentpnt.y);			
			g.lineTo(lastpnt.x, lastpnt.y);
			
			
			
			var blurval_1 = 20;
			var blurval_2 = 100;
			var dt = 0;
			var et = 1;
			
			
			BetweenAS3.serial(
				BetweenAS3.delay(BetweenAS3.tween(_this, { _blurFilter:{blurX:blurval_2, blurY:blurval_2}, alpha:0 }, { _blurFilter:{blurX:blurval_1, blurY:blurval_1}}, et, Quad.easeOut), dt),
				BetweenAS3.removeFromParent(_this)
			).play();
		}
	}
}



category : ActionScript / BetweenAS3 / Flash

Demonstrations

Feature Samples

Author

虹村 マキオウ (nizimura makiou)

猫と太極拳を愛する横浜在住のフリーランスクリエイターです。

logo

Demo and Sample

Category