我有一个补间:
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)
}
}
答案 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;
}
}