как мне остановить твина в точке моего выбора (первый код)?или как мне остановить послабление (второй код)? - PullRequest
0 голосов
/ 05 июня 2011

Это для Actionscript 3.0 на CS5. У меня были некоторые проблемы с fl.transitions.easing.None.easeNone. Я пытался оживить моего персонажа MovieClip, не ослабляя и не останавливаясь ни на что. Я использовал следующий код, чтобы остановить послабление:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);

function keyPressed(evt:KeyboardEvent):void
{
         if(evt.keyCode == Keyboard.RIGHT && var_move == false)
         {
    var_move = true;
    hero.gotoAndStop("Walk");
    hero.scaleX = 1;
    var tween1:Tween = new Tween(hero, "x", None.easeNone, hero.x, hero.x+75, 15, false)
    tween1.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinished);
          }

       if(evt.keyCode == Keyboard.LEFT && var_move == false)
       {
        var_move = true;
        hero.gotoAndPlay("Walk");
        hero.scaleX = -1;
    var tween2:Tween = new Tween(hero, "x", None.easeNone, hero.x, hero.x-75, 15, false)
    tween2.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinished);
        }
}

function onMotionFinished($evt:TweenEvent):void
{
    hero.gotoAndPlay("Stand");
    var_move = false;

}

Что и было, но если вы просто нажмете стрелку вправо или влево, персонаж MovieClip не остановится на этом кадре. Это продолжается, пока анимация не закончена. Если я использую следующий код:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, releaseKey);

function keyPressed(evt:KeyboardEvent):void
{
    if(evt.keyCode == Keyboard.RIGHT)
    {
        var_move = true;
        hero.gotoAndPlay("Walk");
        hero.scaleX = 1;
        hero.x += 5;
    }

    if(evt.keyCode == Keyboard.LEFT)
    {
        var_move = true;
        hero.gotoAndPlay("Walk");
        hero.scaleX = -1;
        hero.x -= 5;
    }
}

function releaseKey(evt:KeyboardEvent):void
{
    if(evt.keyCode == Keyboard.RIGHT || evt.keyCode == Keyboard.LEFT)
    {
        hero.gotoAndStop("Stand");
    }
}

персонаж MovieClip облегчает анимацию ходьбы, но останавливается там, где я хочу. как мне остановить анимацию в выбранной точке (первый код) или как остановить замедление (второй код)?

1 Ответ

2 голосов
/ 05 июня 2011

Для анимации я настоятельно рекомендую использовать библиотеку на http://greensock.com ... бесплатный TweenMax / TweenLite сэкономит вам кучу времени, пытаясь решить подобные проблемы ... они уже выполнили сложную часть :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...