Welcome, Guest
Want to take part in these discussions? Sign in if you have an account, or apply for one below
-
- CommentAuthorchris0990
- CommentTimeSep 14th 2011
I have tried 'emitter.removeAction( gravity );' wherein 'var gravity:MutualGravity = new MutualGravity( 10,100, 3 );'
but it seems that removeAction on MutualGravity doesn't work.
I have also tried 'gravity = gravity1;' wherein 'var gravity1:MutualGravity = new MutualGravity( 0, 100, 3 );'
but like the particles still retains its gravity.
Any thoughts on how to disable its mutualgravity?
Here are the complete codes:
import org.flintparticles.common.counters.*;
import org.flintparticles.common.displayObjects.RadialDot;
import org.flintparticles.common.displayObjects.Star;
import org.flintparticles.common.initializers.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.emitters.Emitter2D;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.zones.*;
import flash.events.MouseEvent;
import flash.events.Event;
var emitter:Emitter2D = new Emitter2D();
var movetry:Move = new Move();
var gravity:MutualGravity = new MutualGravity( 10,100, 3 );
var gravity1:MutualGravity = new MutualGravity( 0, 100, 3 );
var speedLimit:SpeedLimit = new SpeedLimit( 100 );
emitter.counter = new Steady( 2 );
emitter.addInitializer( new ImageClass( Star, 2 ) );
emitter.addInitializer( new Position( new LineZone( new Point( -5, 400 ), new Point( -5, -5 ) ) ) );
emitter.addInitializer( new Velocity( new PointZone( new Point( 65, 0 ) ) ) );
emitter.addInitializer( new ScaleImageInit( 0.75, 2 ) );
emitter.addAction( movetry );
emitter.addAction( new DeathZone( new RectangleZone( -10, -10, 620, 420 ), true ) );
var renderer:DisplayObjectRenderer = new DisplayObjectRenderer();
renderer.addEmitter( emitter );
addChild( renderer );
emitter.start();
emitter.runAhead( 1 );
stage.addEventListener(MouseEvent.MOUSE_MOVE,followMouse);
stage.addEventListener(Event.MOUSE_LEAVE,returnlala);
for(var i:uint; i<renderer.numChildren; i++){
trace(renderer.getChildAt(i).name)
}
function followMouse(event:MouseEvent):void {
emitter.addAction( gravity );
emitter.addAction( speedLimit );
trace("1");
}
function returnlala(event:Event):void{
gravity = gravity1;
emitter.removeAction( speedLimit );
trace("2");
} -
- CommentAuthorchris0990
- CommentTimeSep 14th 2011
I have solved it. I guess you should make sure that you add the action only once so that you could remove it.
Here is the edited code:(only the parts that I edited)
var tryere:int = 0;
function followMouse(event:MouseEvent):void {
if(tryere==0){
emitter.addAction( gravity );
emitter.addAction( speedLimit );
trace("1");
tryere=1;
}
}
function returnlala(event:Event):void{
tryere=0;
emitter.removeAction( gravity );
emitter.removeAction( speedLimit );
trace("2");
}
1 to 2 of 2
