パーティクルの勉強1

by umi_kappa forked from Hello World!!! (diff: 72)
自分なりにコンパクトにしてみた。
そしてコメントをいれてみた。

初めてのパーティクルっぽい動きを
フォークさせていただいてできた。

勉強になりやす。
♥0 | Line 51 | Modified 2011-06-13 16:27:35 | MIT License
play

ActionScript3 source code

/**
 * Copyright umi_kappa ( http://wonderfl.net/user/umi_kappa )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/aaPA
 */

// forked from nitoyon's Hello World!!!

package
{
	import caurina.transitions.Tweener;
	import flash.display.BitmapData;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.filters.BlurFilter;
	import flash.geom.Point;
	import flash.text.TextField;

	public class Main extends MovieClip
	{
		private var _bd:BitmapData;
		
		//--------------------------------------------------------------------------
		//
		//  コンストラクタ
		//
		//--------------------------------------------------------------------------
		public function Main() 
		{
		    var _tf:TextField = new TextField();
		    _tf.text = "Hello\nWorld!!!";
		    _tf.autoSize = "left";
		
		    _bd = new BitmapData(_tf.width, _tf.height, false, 0x3399ff);
		    _bd.draw(_tf);
		    _bd.applyFilter(_bd, _bd.rect, new Point(), new BlurFilter());
		    _bd.draw(_tf);
			
		    //addChild(new Bitmap(_bd));
		
		    for (var i:uint = 0; i < _bd.width; i++) 
		    {
		        for (var j:uint = 0; j < _bd.height; j++) 
		        {
		            Tweener.addTween(
			    addChild(drawCircle(_bd.getPixel(i, j))), 
			    {
			        x: i * 10,
			        y: j * 10,
			        alpha: 1,
			        delay: (i + j) * .2 * Math.random(),
			        time: 1
			        }
			    )
			}
		    }
		}
		
		//----------------------------------
		//  作りたい色の円を作る
		//----------------------------------
		private function drawCircle(color:uint):Sprite
		{
		    var _sp:Sprite = new Sprite();
		    _sp.graphics.beginFill(color);
		    _sp.graphics.drawCircle(0, 0, 6);
		    _sp.graphics.endFill();
			
		    //デフォルトの位置をランダムで
                    _sp.x = 400 * Math.random();
                    _sp.y = 300 * Math.random();
                    _sp.alpha = 0;
			
		    return _sp;
		}
	}
}

Forked