flash on 2010-11-15

by bkzen
♥0 | Line 48 | Modified 2010-11-15 16:19:39 | MIT License
play

ActionScript3 source code

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

package  
{
    import com.bit101.components.Label;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.geom.Matrix;
    import flash.geom.Point;
    
    /**
     * 
     */
    public class Test2 extends Sprite 
    {
        private var cache:BitmapData;
        private var cnt:int;
        private var bmd:BitmapData;
        private var alphaBmd:BitmapData;
        
        public function Test2() 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        
        private function init(e: Event = null): void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            //
            var label: Label = new Label(null, 0, 0, "test");
            label.draw();
            bmd = new BitmapData(label.width << 2, label.height << 2, true, 0);
            cache = new BitmapData(label.width << 2, label.height << 2, true, 0);
            cache.draw(label, new Matrix(4, 0, 0, 4));
            alphaBmd = new BitmapData(cache.width, cache.height, true, 0xFF000000);
            alphaBmd.lock();
            addChild(new Bitmap(bmd));
            cnt = 45;
            addEventListener(Event.ENTER_FRAME, loop);
        }
        
        private function loop(e:Event):void 
        {
            bmd.lock();
            bmd.fillRect(bmd.rect, 0);
            alphaBmd.fillRect(alphaBmd.rect, (cnt / 45 * 0xFF & 0xFF) << 0x18);
            bmd.copyPixels(cache, cache.rect, new Point(), alphaBmd, new Point(), true);
            bmd.unlock();
            if (cnt-- == 0)
            {
                removeEventListener(Event.ENTER_FRAME, loop);
            }
        }
        
    }

}

Forked