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

flash on 2010-2-25

Get Adobe Flash player
by aass 25 Feb 2010
/**
 * Copyright aass ( http://wonderfl.net/user/aass )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/dPMA
 */

package {
    import flash.display.Sprite;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.geom.Matrix;
    import flash.geom.ColorTransform;
    import flash.display.BlendMode;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.filters.BlurFilter;
    
    [SWF(width=465,height=465,backgroundColor=0,frameRate=30)]
    public class FlashTest extends Sprite {
    		
    		private var bmpdata:BitmapData;
    		private var sprite:Sprite;
    		private var matrix:Matrix;
    		private var colortrans:ColorTransform;
    		private var bmpcolortrans:ColorTransform;
    		private var filter:BlurFilter;
    		
        public function FlashTest() {
            // BitmapDataを作成して表示リストに追加
            bmpdata = new BitmapData(465, 465, false, 0x000000);
            addChild (new Bitmap(bmpdata));
            //グラフィックの生成
            sprite = newFig(0, 0, 40, 0xFFFFFF);
        		//Matrixの初期化
        		matrix = new Matrix();
        		//ColorTransformクラス
        		colortrans = new ColorTransform();
        		//エフェクトの初期化
        		bmpcolortrans = new ColorTransform(0.99, 0.99, 0.999);
        		filter = new BlurFilter(5,5,1);
        		//イベント	
        		addEventListener(Event.ENTER_FRAME, enterframe);
       		stage.addEventListener(MouseEvent.CLICK, reset);
        }
        private function enterframe(e:Event):void {
        		//変形
        		matrix.identity();	//各行列プロパティをnull変換になる値に設定。元のオブジェクトと同じ。
        		var s:Number = Math.random()*2;

        		
        		matrix.scale(s, s);	//x,y軸方向に拡大/縮小
        		matrix.rotate(Math.PI*Math.random());	//回転角度(ラジアン)0~180度でランダム
        		matrix.translate(mouseX, mouseY);
        		
        		//色変換
        		colortrans.greenMultiplier = mouseX / 465;
        		colortrans.blueMultiplier = mouseY / 465;
        		colortrans.alphaMultiplier = Math.random();
        		
        		//エフェクトの適用
        		//bmpdata.colorTransform(bmpdata.rect, bmpcolortrans);
        		//Filterの適用
        		bmpdata.applyFilter(bmpdata, bmpdata.rect, bmpdata.rect.topLeft,filter);
        		        		
        		//BitmapDataへ描画
        		bmpdata.draw(sprite,matrix,colortrans,BlendMode.ADD);
        }
        private function reset(e:MouseEvent):void {
        		bmpdata.fillRect(bmpdata.rect, 0xFF000000);	//fillRect(塗りつぶす矩形領域(Rectangleクラス), カラー)
        }
        private function newFig(cx:Number, cy:Number, size:Number,col:uint):Sprite {
        		var shape:Sprite = new Sprite();
        		//lineStyle(線の太さ0は極細船, 色, アルファ値)
        		shape.graphics.lineStyle(0, 0x000000, 0.3);
        		shape.graphics.beginFill(col);
        		shape.graphics.drawCircle(cx, cy, size*0.5);
        		shape.graphics.drawCircle(cx, cy, size*0.4);
        		var w:Number = size*0.6;
        		var h:Number = size*0.15;
        		shape.graphics.drawRect(cx-w/2, cy-h/2, w, h);
        		shape.graphics.endFill();
        		return shape;
        }
    }
}