0

也许使用 Tween 类?我尝试了easeOut。但是如果会写 2 个 Tween,第 2 个会覆盖第 1 个,所以我只看到 obj 在第 2 个 Tween 方向移动,而不是第 1 个 Tween 方向。

我知道下面第二个 Tween 的坐标不正确(因为所有坐标都应该遵循定义的参考点),所以我需要找出徽标的宽度和高度。但是现在可以了,因为它是用于测试目的。

import fl.transitions.Tween;
import fl.transitions.easing.*;
logo.visible = false;
addChild(logo);

circle.addEventListener(MouseEvent.CLICK, moveObj);

function moveObj(e:MouseEvent):void{
    logo.visible = true;
    var tweenRight:Tween = new Tween(logo,"x",None.easeOut, 100, 300, 2, true);
    var tweenLeft:Tween = new Tween(logo,"x",None.easeOut, 300, 100, 2, true);

}
4

2 回答 2

0

这两种情况同时发生,您需要将第二次延迟到第一次结束之后。

于 2010-01-27T18:55:10.600 回答
0

您正在同时触发两个补间,因此您可以例如收听运动完成事件并在此时启动另一个补间:

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

logo.visible = false;
addChild(logo);

circle.addEventListener(MouseEvent.CLICK, moveObj);

function moveObj(e:MouseEvent):void{
    logo.visible = true;
    var tweenRight:Tween = new Tween(logo,"x",None.easeOut, 100, 300, 2, true);
    tweenRight.addEventListener(TweenEvent.MOTION_FINISH, onTweenRightFinished);
}
function onTweenRightFinished(e:TweenEvent):void {
    e.currentTarget.removeEventListener(TweenEvent.MOTION_FINISH, onTweenRightFinished);
    var tweenLeft:Tween = new Tween(logo,"x",None.easeOut, 300, 100, 2, true);
}
于 2010-01-27T19:00:59.993 回答