2014-01-18 3 views
0

Я создаю флеш-игру, и у меня проблема, после анимации «Прыжки» мне нужно возобновить анимацию «Остаться в живых».AS3. Как использовать другую анимацию после завершения?

Я знаю, что мне нужно использовать parent.gotoAndStop("staying"); в последнем кадре анимации. Это сработало раньше, теперь я изменил свой персонаж, добавив новые анимации, и теперь, когда я пытаюсь использовать его, я получил ошибку: 1061: Call to possibly undefined method gotoAndStop through a reference with static type flash.display:DisplayObjectContainer.

Я попытался использовать: gotoAndStop("staying"); после этого, прыгая цикл анимации навсегда. также пробовал stop(); после этого - анимация останавливается в последнем кадре, но мне нужно запустить staying анимацию. Не могли бы вы мне помочь, пожалуйста? Спасибо.

+0

Вы должны размещать больше кода или больше информации о том, где находится этот код, что доступно в точке ошибки и как вы ссылаетесь на MC игрока извне. – Vesper

ответ

0

попробовать что-то вроде этого:

if(player.currentFrameLabel=="jumping"){ 
    if(player.(getChildAt(0) as MovieClip).currentFrame==totalFrames){ 
     player.gotoAndStop("Staying"); 
    } 
} 

Edit:
Я предполагаю, что вы используете классы, а не сроки, не использовать временную шкалу, это ужасная идея для AS3.0.

Edit2:
Если вы работаете на временной шкале, то же самое относится, если вам необходимо сделать ссылку игрока, как в приведенном выше коде, ссылка на экземпляр является «игрок».

+0

Я использовал его в последнем фрейме временной шкалы, поэтому, когда мне нужно использовать этот код? –

+0

Когда я использую его в функции keyDown, я получил 3 ошибки: '1120: доступ к неопределенному свойству currentFrameLabel.' other' 1178: Попытка доступа недоступного свойства currentFrame через ссылку со статическим типом Script.' и другого '1059: свойство читается -одно. ' –

+0

@Zhafur Не должно работать, потому что метки фреймов назначаются только одному кадру, поэтому, если' currentFrameLabel == "прыгает", то есть только один фрейм, и это начало анимации, а не ее конец. – Vesper

0

это будет последний кадр вашей анимации прыжки

MovieClip(parent).gotoAndStop("staying"); 

Хитрость проста. parent свойство, унаследованное MovieClip от DisplayObjectContainer, и оно возвращает ссылку на объект как DisplayObjectContainer. Здесь нет gotoAndStop методов, поэтому вы должны преобразовать эту ссылку в MovieClip, чтобы получить доступ к ее свойствам и методам. Ошибка, которую вы получили (1061), сообщила вам об этом.

+0

Спасибо, что половина работала. Теперь, когда он находится в воздухе (прыгает), и если я нажимаю стрелки влево/вправо (пытается переместиться влево или вправо), прыгающая анимация отменяется и символ телепортируется на землю. Мне нужно сделать что-то вроде: Если персонаж находится в воздухе, а стрелки (влево/вправо) нажимаются. Он перемещается на правильную сторону, не прерывая прыгающую анимацию и не телепортируясь на землю. –

+0

вы должны перемещать свой персонаж влево и вправо, а не с помощью анимации, но используя свойство 'x'. у вас есть другая анимация для персонажа, стоящего влево и вправо? – Aspiro

+0

Я знаю, но анимация движения персонажей - это перемещение ног при перемещении персонажа. –

Смежные вопросы