在ActionScript中,如何让某些东西移动到某个地方并向后移动?

时间:2010-01-27 18:46:24

标签: flash actionscript-3 flash-cs4 tween

使用Tween类可能吗?我试过了easeOut。但是如果要写2 Tween,第二个将覆盖第一个,所以我只看到obj在第二个Tween方向移动,而不是第一个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);

}

2 个答案:

答案 0 :(得分:0)

你同时发生这两件事,你需要延迟第二件事,直到第一件结束。

答案 1 :(得分:0)

你正在同时触发两个补间,所以你可以听一下motion finish事件并在此时启动另一个补间:

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