forked from: Checkmate Vol.6 Sponser

by h_sakurai forked from Checkmate Vol.6 Sponser (diff: 94)
♥0 | Line 95 | Modified 2009-12-08 13:17:58 | MIT License
play

ActionScript3 source code

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

// forked from checkmate's Checkmate Vol.6 Sponser
package {
    import flash.display.*;
    import flash.events.*;
    
    import org.libspark.betweenas3.*;
    import org.libspark.betweenas3.tweens.ITween;
    [SWF(backgroundColor=0x3399ff)]
    public class Sponser extends Sprite {
        private var robo:Robo;
        public function Sponser() {
            Robo.load();
            addEventListener("enterFrame", update);
        }
        public function update(e:Event):void {
            if(loadf) {
                var robos:Array = [];
                for( var i:int = 0; i<30; ++i ) {
                    robo = new Robo( 8, true, true );
                    robos.push(robo);
                    addChild(robo);
                }
                for (i=0;i<30;i++) {
                    var t:ITween = BetweenAS3.tween( robos[i], 
                        { x : -150,  scaleX:-5, scaleY:5, y: 0 + i*20 },
                        { x:465 , scaleX:-5, scaleY:5,y: 100  }, 3 );
                    t.stopOnComplete = false;
                    t.play();
                }
                loadf=false;
            }
        }
    }
}

var loadf:Boolean = false;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.geom.*;
import flash.system.*;
class Robo extends Sprite {
    public static var imgSrc:String = "http://assets.dev.wonderfl.net/images/related_images/e/ea/ea8a/ea8a6b1d37c2cec12e07893c66f164a9da1e92c0";
    
    private var _frame:Bitmap;
    private var _currentFrame:int = 0;
    private var _totalFrames:int = 0;
    private var _frameRate:int = 8;
    private var _autoPlay:Boolean = false;
    private static var         frames:Array = [];

    public function Robo( frameRate:int = 8, autoPlay:Boolean = false, autoLoad:Boolean = false ){
        _frameRate = frameRate;
        _autoPlay = autoPlay;
        _frame = new Bitmap();
        addChild( _frame );
        _totalFrames = frames.length;
        update();
        
        dispatchEvent( new Event("READY") );
        
        if( _autoPlay ) play();
    }
    public static var bmp:BitmapData;
    public static function load():void {
        var loader:Loader = new Loader();
        
        loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function(e:Event):void{
            var _frameRate:int = 8;
            bmp = Bitmap( loader.content ).bitmapData;
            const frameWidth:int = 20;
            const frameHeight:int = 34;
            
            var numFrames:int = bmp.width/frameWidth;
            for( var i:int=0; i< numFrames; ++i ) {
                for( var f:int=0; f<_frameRate; ++f ) {
                    var frame:BitmapData = new BitmapData( frameWidth, frameHeight, true, 0 );
                    var matrix:Matrix = new Matrix();
                    matrix.translate( -i*frameWidth, 0 );
                    frame.draw( bmp, matrix );
                    frames.push( frame );
                }
            }
            loadf = true;    
        } );
        loader.load( new URLRequest(imgSrc), new LoaderContext(true) );
    }
    
    private function update(e:Event=null):void {
        _frame.bitmapData = frames[_currentFrame]
        _currentFrame = (_currentFrame+1) % _totalFrames;
    }
    
    public function play():void {
        if( isReady )
            addEventListener( Event.ENTER_FRAME, update );
    }
    public function stop():void {
        removeEventListener( Event.ENTER_FRAME, update );
    }
    
    public function get currentFrame():int { return _currentFrame+1; }
    public function get totalFrames():int { return _totalFrames; }
    
    public function get isReady():Boolean {
        return frames && frames.length>0;
    }
    
}

Forked