Particle Phys
Ordinary constructor +
Buffer for Flint +
Flint Emitter
♥0 |
Line 153 |
Modified 2012-12-29 05:10:12 |
MIT License
archived:2017-03-30 08:26:01
ActionScript3 source code
/**
* Copyright hemingway ( http://wonderfl.net/user/hemingway )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/yYyg
*/
package
{
import net.hires.debug.*;
import flash.display.*;
import flash.system.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.text.*;
[SWF(width = 465, height = 465, frameRate = 60)]
public class Main extends Sprite
{
public function Main()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
public function _init() :void
{
graphics.clear ();
graphics.lineStyle (1, 0, 0.9);
graphics.drawRect (0, 0, 464, 464);
}
public function addedToStage($e:Event) :void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
addChild(new fBuffer);
_init();
}
}
}
import net.hires.debug.*;
import flash.display.*;
import flash.system.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.text.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.displayObjects.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.initializers.*;
class fBuffer extends Sprite
{
private var pEmitter :Emitter2D;
private var pRenderer :BitmapRenderer;
private var pGravity :GravityWell;
private var pOutput :Text_Output;
public function fBuffer()
{
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
pEmitter = new fTrail;
pRenderer = new BitmapRenderer(new Rectangle(1, 1, 464, 464));
pGravity = new GravityWell(0, 1, 1);
pOutput = new Text_Output("fBuffer");
pRenderer.addEmitter(pEmitter);
}
public function _init() :void
{
graphics.beginFill (0, 0.25);
graphics.drawRect (0, 0, 465, 465);
graphics.endFill ();
}
public function addedToStage($e:Event) :void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
_init();
addChild(pOutput);
addChild(pRenderer);
pEmitter.start();
pEmitter.addAction(pGravity);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
public function onMouseDown($e:MouseEvent) :void
{
pGravity.x = $e.stageY;
pGravity.y = $e.stageX;
//if ($e.target == pEmitter.particlesArray[0]){pEmitter.particlesArray[0].x = $e.stageX; pEmitter.particlesArray[0].y = $e.stageY}
pGravity.power = 3000;
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
public function onMouseMove($e:MouseEvent) :void
{
pGravity.x = $e.stageX;
pGravity.y = $e.stageY;
//pEmitter.particlesArray[0].x = $e.stageX; pEmitter.particlesArray[0].y = $e.stageY;
}
public function onMouseUp($e:MouseEvent) :void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
pGravity.power = 0;
}
}
class fTrail extends Emitter2D
{
public function fTrail()
{
counter = new Blast(1);
addInitializer(new MassInit(0.9));
addInitializer(new CollisionRadiusInit(20));
addInitializer(new SharedImage(new Dot(20)));
addInitializer(new ColorInit(0xFF000000, 0xFF000000));
addInitializer(new Position(new RectangleZone(20, 20, 445, 445)));
addAction(new Move());
addAction(new Collide());
addAction(new Friction(50));
//addAction(new MutualGravity(20, 465, 1000));
addAction(new BoundingBox(1, 1, 464, 464));
}
}
class Text_Output extends TextField
{
private var textFormat :TextFormat;
protected var _content :String;
protected var _x :Number;
protected var _y :Number;
protected var _font :String;
public function Text_Output($content:String, $x:Number = 0, $y:Number = 0, $font:String = "Helvetica")
{
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
_content = $content;
_x = $x;
_y = $y;
_font = $font;
multiline = true;
autoSize = "left";
selectable = mouseEnabled = false;
antiAliasType = AntiAliasType.ADVANCED;
}
public function _init() :void
{
text = _content;
x = _x;
y = _y;
textFormat = new TextFormat(_font);
setTextFormat(textFormat);
}
public function addedToStage($e:Event) :void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
_init();
}
public function get font() :String
{ return _font }
public function get nWidth() :Number
{ return width }
public function set font($:String) :void
{ _font = $; _init(); }
}