flash on 2010-12-7

by yama3
♥0 | Line 93 | Modified 2010-12-07 11:17:23 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.filters.BlurFilter;
    import flash.geom.Rectangle;
    import org.flintparticles.twoD.renderers.BitmapRenderer;
    
    [SWF(width="465", height="465", backgroundColor="0xffffff", frameRate="60")]
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            WonderflTemplate.Initialize(this, init, 60, 0x000000);            
        }
        
        private function init(e:Event = null):void {
            var emitter:MyEmitter = new MyEmitter();
            
            var renderer:BitmapRenderer = new BitmapRenderer(new Rectangle(0,0,WonderflTemplate.WIDTH, WonderflTemplate.HEIGHT));
            renderer.addFilter(new BlurFilter(8,8,3));
            renderer.addEmitter(emitter);
            addChild(renderer);
            
            emitter.start();
        }
    }
}

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import org.flintparticles.common.actions.Age;
import org.flintparticles.common.actions.Fade;
import org.flintparticles.common.counters.Steady;
import org.flintparticles.common.displayObjects.Dot;
import org.flintparticles.common.energyEasing.Quadratic;
import org.flintparticles.common.initializers.ColorInit;
import org.flintparticles.common.initializers.Lifetime;
import org.flintparticles.common.initializers.SharedImage;
import org.flintparticles.twoD.actions.DeathZone;
import org.flintparticles.twoD.actions.Move;
import org.flintparticles.twoD.actions.MutualGravity;
import org.flintparticles.twoD.emitters.Emitter2D;
import org.flintparticles.twoD.initializers.Position;
import org.flintparticles.twoD.initializers.ScaleAllInit;
import org.flintparticles.twoD.zones.RectangleZone;

class MyEmitter extends Emitter2D
{
    public function MyEmitter():void
    {
        counter = new Steady(2);
        
        addInitializer(new SharedImage(new Dot(2)));
        addInitializer(new ScaleAllInit(1,2));
        addInitializer(new ColorInit(0xffffffff, 0xffffffff));
        addInitializer(new Position(new RectangleZone(0, 0, WonderflTemplate.WIDTH, WonderflTemplate.HEIGHT)));
        addInitializer(new Lifetime(10, 10));
        
        addAction(new MutualGravity(50, 100, 5));
        addAction(new Age(Quadratic.easeOut));
        addAction(new Move());
        addAction(new Fade(0, 1));
    }
}

class WonderflTemplate
{
    public static const WIDTH:int = 465;
    public static const HEIGHT:int = 465;
    
    private static var _target:Sprite;
    private static var _handler:Function;
    static private var _background:Bitmap;
    static private var _backgroundColor:uint;
    
    public static function Initialize(target:Sprite, handler:Function, fps:Number, bgColor:uint, captureDelay:int = -1, resize:Boolean = false):void
    {
        _target = target;
        _handler = handler;
        _backgroundColor = bgColor;
        
        target.stage.frameRate = fps;
        if(resize)
        {
            target.stage.scaleMode = StageScaleMode.NO_SCALE;
            target.stage.align = StageAlign.TOP_LEFT;
            target.stage.addEventListener(Event.RESIZE, resizeHandler);
        }
        
        _background = new Bitmap(new BitmapData(WIDTH, HEIGHT, false, _backgroundColor));
        target.addChild(_background);
        
        if(captureDelay > 0) Wonderfl.capture_delay(captureDelay);
        
        target.addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);

    }
    
    private static function addToStageHandler(event:Event):void
    {
        _target.removeEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
        _handler();
    }
    
    private static function resizeHandler(e:Event):void {
        _background.bitmapData.dispose();
        _background.bitmapData = new BitmapData(_target.stage.stageWidth, _target.stage.stageHeight, false, _backgroundColor);
    }



}