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 2011-5-29

Get Adobe Flash player
by amdmamdma 30 May 2011
/**
 * Copyright amdmamdma ( http://wonderfl.net/user/amdmamdma )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/cDnT
 */

package {
    import flash.text.TextField;
    import flash.display.Bitmap;
    import flash.geom.Rectangle;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.display.Graphics;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        //---変数---
        //エフェクトのy座標現在地
        private var _y:Number = 0;
        //y軸開始地点
        private var nStartY:Number = 0;
        //y軸終了地点
        private var nStopY:Number = 0;
        //走査方向
        private var nSign:int = 1;
        
        
        public function FlashTest() {
            // write as3 code here..
            //新規スプライト(素画像)生成
            var mySprite:Sprite = new Sprite();
            var myG:Graphics = mySprite.graphics;
            for(var i:uint = 0; i < 1500; i ++){
                myG.beginFill(Math.random() * 0xffffff);
                myG.drawCircle(Math.random() * 200, Math.random() * 200, Math.random() * 5);
                myG.endFill();
            }
            //元画像からBitmapData生成
            var bd01:BitmapData = new BitmapData(mySprite.width, mySprite.height, true, 0x00000000);
            bd01.draw(mySprite);

            //エフェクト格納用
            var bd02:BitmapData = new BitmapData(mySprite.width, mySprite.height, true, 0x00000000);
            var bm02:Bitmap = new Bitmap(bd02);
            addChild(bm02);
            
            //test
            var myText:TextField = new TextField();
            addChild(myText);  
            //フレーム監視開始
            addEventListener(Event.ENTER_FRAME, xFrame);

            //イベント処理
            function xFrame(e:Event):void{                
                //出現・消滅フラグの反転
                if(_y >= mySprite.height){
                    _y = 0;
                    nSign *= -1;
                }
                //走査範囲の決定
                if(nSign == 1){
                    //出現エフェクトの場合
                    nStartY = _y;
                    nStopY = mySprite.height;
                }else{
                    //消滅エフェクトの場合
                    nStartY = 0;
                    nStopY = _y;
                }
                //y軸方向描画位置移動
                _y ++;
                //色情報を高さ1pxで取得
                var rc:Rectangle = new Rectangle(0, _y, mySprite.width, 1);
                //x軸方向走査(左端から右端まで)
                for(var i:uint = 0; i < mySprite.width; i ++){
                    //y軸方向走査
                    for(var j:uint = nStartY; j < nStopY; j ++){
                        //元画像から色情報を取得して、エフェクト用BitmapDataにコピー
                        bd02.setPixel32(i, j, bd01.getPixel32(i, _y))
                    }
                }   
            }
        }

    }
}