Fork me on GitHub
Not signed in (Sign In)

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");
    }