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: flash on 2009-11-18

Get Adobe Flash player
by yd_niku 21 Nov 2009
/**
 * Copyright yd_niku ( http://wonderfl.net/user/yd_niku )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/7wBG
 */

// forked from yd_niku's flash on 2009-11-18
package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.geom.*;
    import jp.progression.commands.*;
    import jp.progression.commands.display.*;
    import jp.progression.commands.net.*;
    import jp.progression.commands.lists.*;
    
    import com.flashdynamix.utils.SWFProfiler;
    public class FlashTest extends Sprite {
        public var source:BitmapData;
        public var canvas:Sprite = new Sprite();
        public var matrix:Matrix = new Matrix();
        public function FlashTest() {
            if( stage ) setup();
            else addEventListener( Event.ADDED_TO_STAGE, setup );
        }
        public function setup(e:Event=null):void{
            removeEventListener( Event.ADDED_TO_STAGE, setup );
            
            SWFProfiler.init( this );
                        
            stage.addEventListener( Event.RESIZE, resizeHandler );
            resizeHandler();
            
            canvas.x = cx;
            canvas.y = cy;
            addChild( canvas );
            
            var loader:TaigaLoader = new TaigaLoader();
            new SerialList( null,
                new Func( loader.load, null, loader, Event.COMPLETE ),
                function():void {
                    source = loader.data;
                },
                startBitmapFill
            ).execute(); 
            
        }
        public function startBitmapFill():void {
            addEventListener( Event.ENTER_FRAME, update );
        }
        public function update(e:Event):void {
            calcuration();
            fill();
        }
        private function calcuration():void{
            var dx:Number = cx - mouseX;
            var dy:Number = cy - mouseY;
            
            var sq:Number = dx*dx + dy*dy;
            var stageSq:Number = sw*sw+ sh*sh;
            
            targetScale = sq/stageSq*10;
            
            targetRotation = Math.atan2( dy, dx );
            
            targetX = mouseX - cx;
            targetY = mouseY - cy;
        }
        
        private var targetScale:Number = 0;
        private var targetX:Number = 0;
        private var targetY:Number = 0;
        private var targetRotation:Number = 0;
        
        private var currentScale:Number = 0;
        private var currentX:Number = 0;
        private var currentY:Number = 0;
        private var currentRotation:Number = 0;
        
        private var easeStrong:Number = 0.10;
        private function fill():void{
            currentScale += ( targetScale - currentScale ) * easeStrong;
            currentRotation += ( targetRotation - currentRotation ) * easeStrong;
            
            currentX += ( targetX - currentX ) * easeStrong;
            currentY += ( targetY - currentY ) * easeStrong;
            
            matrix.a = matrix.d = 1;
            matrix.b = matrix.c = 0;
            matrix.a = matrix.d = currentScale;
            matrix.rotate( currentRotation );
            matrix.tx = currentX;
            matrix.ty = currentY;
            
            canvas.graphics.clear();
            canvas.graphics.beginBitmapFill( source, matrix, true, false );
            canvas.graphics.drawRect( -cx, -cy, sw, sh );
            canvas.graphics.endFill();
        }
        public function stopBitmapFill():void {
            removeEventListener( Event.ENTER_FRAME, fill );
        }
        
        
        public var sw:Number;
        public var sh:Number;
        public var cx:Number;
        public var cy:Number;
        public function resizeHandler( e:Event = null ):void {
            sw = stage.stageWidth;
            sh = stage.stageHeight;
            cx = sw/2>>0;
            cy = sh/2>>0;
            
        }
    }
}

import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.net.*;
class TaigaLoader extends EventDispatcher {
    public var data:BitmapData;
    private var _loader:Loader;
    public function TaigaLoader(){
        _loader = new Loader();
        _loader.contentLoaderInfo.addEventListener( Event.COMPLETE, _loaderCompleteHandler );
    }
    private function _loaderCompleteHandler(e:Event):void {
        _loader.contentLoaderInfo.removeEventListener( Event.COMPLETE, _loaderCompleteHandler );
        data = Bitmap(_loader.content ).bitmapData;
        _loader = null;
        dispatchEvent( new Event( Event.COMPLETE ) );
    }
    private var _imgSrc:String = "http://assets.wonderfl.net/images/related_images/e/e9/e9b6/e9b64ead20dd3d674e79ea186b29f974341b480f";
            
    public function load():void {
        var url:URLRequest = new URLRequest( _imgSrc );
        _loader.load( url, new LoaderContext(true) );
    }
}