我正在创建一个flash动画,其中flash对象前后沿X轴移动。我想将对象例如从位置x = 10移动到位置x = 100然后保持在x = 100的位置2秒并且以相同的运动特性返回到初始位置。我正在使用Tween Classes,让我改变缓动等等,我也在使用Tween yoyo方法。问题是我不知道如何使对象在第二个位置停留几秒钟(在回到初始位置之前)并且我不知道如何停止yoyo事件。我希望对象前后移动然后保持在初始位置,但是yoyo一直在重复(我认为我不应该使用yoyo方法......)。我附上了我到目前为止的代码:
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween = new Tween(rectangle, "x", Strong.easeInOut, 100,300, 1, true);
myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
function onFinish(e:TweenEvent):void {
myTween.yoyo();
}
答案 0 :(得分:0)
您应该在onFinish方法中设置超时。代码应如下所示:
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween = new Tween(rectangle, "x", Strong.easeInOut, 100,300, 1, true);
myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
function onFinish(e:TweenEvent):void {
var delay:int = 1000;
setTimeout(delay,reverse_tween); // delay - delay in milliseconds
}
function reverse_tween():void{
myTween.yoyo();
myTween.removeEventListener(TweenEvent.MOTION_FINISH, onFinish);
}
希望有所帮助