flash on 2012-5-16
/**
* Copyright ricserje ( http://wonderfl.net/user/ricserje )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/4bC2
*/
package {
import flash.display.*;
import flash.events.*;
import idv.cjcat.stardust.common.emitters.*;
import idv.cjcat.stardust.common.renderers.*;
import idv.cjcat.stardust.twoD.renderers.*;
import com.bit101.components.Slider;
import idv.cjcat.stardust.twoD.initializers.*;
import idv.cjcat.stardust.twoD.zones.*;
public class Turbulence extends Sprite {
private var emitter:Emitter;
private var renderer:Renderer;
public function Turbulence() {
emitter = new ArrowEmitter();
renderer = new DisplayObjectRenderer(this);
renderer.addEmitter(emitter);
addUI();
addEventListener(Event.ENTER_FRAME, mainLoop);
}
private function mainLoop(e:Event):void {
emitter.step();
}
private function addUI():void{
var slider:Slider = new Slider(Slider.HORIZONTAL, this, 10, 440, function ():void{
emitter.addInitializer(new Position(new SinglePoint(320, slider.value)));
});
slider.setSize(150, 15);
slider.value = 60;
slider.maximum = 500;
slider.backClick = true;
}
}
}
import idv.cjcat.stardust.common.actions.*;
import idv.cjcat.stardust.common.clocks.*;
import idv.cjcat.stardust.common.initializers.*;
import idv.cjcat.stardust.common.math.*;
import idv.cjcat.stardust.twoD.actions.*;
import idv.cjcat.stardust.twoD.emitters.*;
import idv.cjcat.stardust.twoD.initializers.*;
import idv.cjcat.stardust.twoD.zones.*;
class ArrowEmitter extends Emitter2D {
public function ArrowEmitter() {
super(new SteadyClock(1));
//initializers
addInitializer(new DisplayObjectClass(Firefly));
addInitializer(new Life(new UniformRandom(50, 10)));
addInitializer(new Position(new SinglePoint(320, 200)));
addInitializer(new Velocity(new LazySectorZone(3, 2)));
addInitializer(new Mass(new UniformRandom(2, 1)));
addInitializer(new Scale(new UniformRandom(1, 0.2)));
//actions
addAction(new Age());
addAction(new DeathLife());
addAction(new Move());
addAction(new Oriented());
addAction(new ScaleCurve(10, 10));
}
}
const FIREFLY_RADIUS_AVG:Number = 2;
import flash.display.Shape;
class Firefly extends Shape {
public function Firefly() {
graphics.beginFill(0x123aFF);
graphics.drawCircle(0, 0, FIREFLY_RADIUS_AVG);
}
}