PDA

Просмотр полной версии : gotoAndPlay() Воспроизводит анимацию не до конца.


SinSpirit
16.06.2013, 12:56
Здравствуйте!
Пытался найти ответ везде, но нигде ничего нет, либо я просто не знаю как правильно сформулировать. В общем, проблема в следующем: код, представленный ниже, работает и запускает правильные анимации по нажатию клавиш, но почему-то анимация проигрывается не до конца, а обрывается примерно на 2/3, при этом если кнопку держать нажатой, то анимация просто останавливается, а если отпустить, то клип, как и должно быть, возвращается в исходное положение. Если нажать снова - происходит то же самое.

В самом клипе есть код в первом кадре (stop();) и в кадре после "Walking" (там написано gotoAndPlay ("Walking");). Могу выложить исходник в cs6 если нужно.


stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);





function KeyDown(event:KeyboardEvent):void
{

if (event.keyCode == Keyboard.RIGHT)
{
_mainCharacter.gotoAndPlay("Walking");

}
if (event.keyCode == Keyboard.LEFT)
{
_mainCharacter.gotoAndPlay("Walking");

}
if (event.keyCode == Keyboard.UP)
{
_mainCharacter.gotoAndPlay("StartJump");

}

Ёлочка
16.06.2013, 13:48
Исходник бы не помешал. :)

maincode
16.06.2013, 14:09
при этом если кнопку держать нажатой, то анимация просто останавливается
Все верно, когда вы держите клавишу, каждый раз срабатывает код gotoAndPlay(...), т.е. каждый кадр происходит "goto" без "play". Надо после первого нажатия на кнопку шде нибудь хранить соответствующий флаг, и сбрасывать его после отпускания.

На счет остальных проблем - надо видеть исходники кода и анимации.

SinSpirit
16.06.2013, 14:23
Все верно, когда вы держите клавишу, каждый раз срабатывает код gotoAndPlay(...), т.е. каждый кадр происходит "goto" без "play".

Самое интересное что анимация останавливается не сразу. Проходит несколько кадров и только потом тормозит. Так что и goto и play происходят, но почему-то play не идет до конца. В любом случае, спасибо за ответ.





Вот исходник:

maincode
16.06.2013, 14:35
if (event.keyCode == Keyboard.RIGHT && !rightKeyDown)
{
rightKeyDown = true;
_mainCharacter.gotoAndPlay("Walking");

}

SinSpirit
16.06.2013, 14:44
Большое спасибо!