В ActionScript, как заставить что-то двигаться куда-то и двигаться назад? - PullRequest
0 голосов
/ 27 января 2010

Может быть, с помощью класса Tween? Я попробовал easyOut. Но если напишет 2 Tween, 2-й перезапишет 1-й, поэтому я вижу только объект, движущийся во 2-м направлении Tween, а не в 1-м 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 голосов
/ 27 января 2010

Вы одновременно запускаете две анимации, чтобы, например, прослушать событие финишное движение и запустить другую анимацию в данный момент:

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);
}
0 голосов
/ 27 января 2010

У вас обоих это происходит одновременно, вам нужно будет отложить вторую до окончания первого.

...