使用AS3沿X轴向前和向后移动Flash对象

时间:2012-07-04 19:47:17

标签: actionscript-3

我正在创建一个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();
}

1 个答案:

答案 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);
}

希望有所帮助