如何阻止补间在as3中补间

时间:2013-12-04 15:05:57

标签: actionscript-3

我有一个补间:

TweenLite.to(s, 0.1, {x:100, y:100});

但是我希望它能够停止补间并转到:

    x = 10;
    y = 10;

所以我使用这段代码:     s.addEventListener(MouseEvent.CLICK,onClick);

function onClick(e:MouseEvent):void
{
    s.x = 10;
    s.y = 10;
}

但是补间一直在补间并且不停止有人可以帮我这个吗?

这是我简化的代码,但它仍然不起作用:

stop();
import com.greensock.*; 
import com.greensock.easing.*;
import com.greensock.TweenMax;
import com.greensock.TweenLite;
import flash.events.Event;
import com.greensock.TweenLite

stage.addEventListener(MouseEvent.CLICK, rijden); // Add the button click

function rijden(e:MouseEvent):void {

TweenLite.to(auto, 4, {x:666.15, y:375.6});
}
addEventListener(Event.ENTER_FRAME, einde1);
function einde1(e:Event){
    if(auto.hitTestObject(stopauto)){
   var myTween=TweenLite.to(auto, 4, {x:666.15, y:375.6});
myTween.kill();     //here code for tween killing
trace("works")
        //
        auto.x = 241;
        auto.y = 375;
       removeEventListener(Event.ENTER_FRAME, einde1)
    }
}

2 个答案:

答案 0 :(得分:1)

您可以尝试:

TweenLite.killTweensOf();

答案 1 :(得分:1)

您可以将TweenLite实例分配给此变量

var myTween=TweenLite.to(s, 0.1, {x:100, y:100});

然后用

杀死它
myTween.kill();

关于您的评论应该是这样的

addEventListener(Event.ENTER_FRAME, einde1);
function einde1(e:Event){
    if(auto.hitTestObject(eind)){
        //here code for tween killing

        //
        man.x = 241.3;
        man.y = 375;
        removeEventListener(Event.ENTER_FRAME, einde1)
    }
}

UPD:您的计时器出现问题。它应该没有阻止它。此外,我将3个enterFrame监听器更改为一个。无论如何,链接到您的固定代码示例 - https://dl.dropboxusercontent.com/u/39984632/stackoverflowtest.fla

UPD2:为了让生命反击,你可以这样做。添加

var lives:Number=5;

改变这个:

if(auto.hitTestObject(man) && !autoWasHitByMan){
    trace("auto hits man");
    autoWasHitByMan=true;
    TweenLite.to(man, 4, {x:539.95, y:145, rotation:360});
}

到这个

if(auto.hitTestObject(man) && !autoWasHitByMan){
    trace("auto hits man");
    lives--;
    TweenLite.to(man, 4, {x:539.95, y:145, rotation:360});
    if(lives==0){
        autoWasHitByMan=true;
    }
}