In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: 光る玉

エフェクトの練習です。
雲とかもやみたいなの作りたかった。
カーブを描いての動きは、Tweenerのスペシャルプロパティを利用しています。
Get Adobe Flash player
by yd_niku 09 Feb 2009
// forked from sake's 光る玉
/*
    エフェクトの練習です。
    雲とかもやみたいなの作りたかった。
    カーブを描いての動きは、Tweenerのスペシャルプロパティを利用しています。
*/

package
{
	import caurina.transitions.Tweener;
	import caurina.transitions.properties.CurveModifiers;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.BlendMode;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.filters.BlurFilter;
	import flash.filters.ColorMatrixFilter;
	import flash.geom.Point;
	import flash.utils.Timer;

	[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="60")]
	public class bezier extends Sprite
	{
		private var bmpd:BitmapData;
		private var colorMatrix:ColorMatrixFilter;
		private var Blur:BlurFilter;

		public function bezier()
		{
			bmpd = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00000000);
			var bmp:Bitmap = new Bitmap(bmpd);
			addChild(bmp);

			var timer:Timer = new Timer(100);
			timer.addEventListener(TimerEvent.TIMER, onTimer);
			timer.start();

			CurveModifiers.init();

			colorMatrix = new ColorMatrixFilter([
                            1, 0, 0, 0, 1,
                            0, 1, 0, 0, 1,
                            0, 0, 1, 0, 1,
                            0, 0, 0, 0.99, 1
                            ]);
			Blur = new BlurFilter(2, 1.0, 3);
			
			addEventListener(Event.ENTER_FRAME, onFrame);
		}

		private function onTimer(e:TimerEvent):void
		{
			var sp:Sprite=new Sprite;
			sp.graphics.beginFill(0xffffff * Math.random(), 1);
			sp.graphics.drawCircle(0, 0, 4*Math.random() );
			sp.graphics.endFill();

			addChild(sp);
			sp.x = -10;
			sp.y = 495*Math.random()-30;
			sp.scaleX = sp.scaleY = sp.alpha = 0;
			sp.filters = [new BlurFilter(2, 2, 3)];
			sp.blendMode = BlendMode.ADD;

			var t:Number=30*Math.random() + 8;
			Tweener.addTween(sp, {alpha:0.5, scaleX:1, scaleY:1, time:1});
			Tweener.addTween(sp, {x:600, y:465*Math.random(), _bezier:[{x:232.5, y:665*Math.random()-100}], time:t})
			Tweener.addTween(sp, {alpha:0, scaleX:0, scaleY:0, time:1, delay:t-2, onComplete:function():void
					{
						removeChild(sp);
						sp.filters = [];
						sp.graphics.clear();
						sp = null;
					}});
		}

		private function onFrame(e:Event):void
		{
			bmpd.draw(this);
			bmpd.applyFilter(bmpd, bmpd.rect, new Point(0, 0), Blur);
			bmpd.applyFilter(bmpd, bmpd.rect, new Point(0, 0), colorMatrix);
		}
	}
}