![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 4
|
Пытался написать код для управления персонажем стрелками по этому гайду:
http://siliren.ru/content/view/114/1/ Но возникли проблемы с воспроизведением анимации персонажа. В символе персонажа 2 кадра - в первом находится анимация стойки, во втором - анимация передвижения. Почему-то когда я пытаюсь обратиться к какой-то из этих двух анимаций через gotoAndPlay, проигрывается только первый кадр и клип останавливается. В чем причина этой проблемы? package { import flash.display.Sprite; import flash.events.Event; public class as3circle extends Sprite{ public var keyboard_input:keys; public var circle_hero = new circle; public function as3circle() { addChild(circle_hero); circle_hero.init(); var keyboard_sprite = new Sprite(); addChild(keyboard_sprite); keyboard_input = new keys(keyboard_sprite); stage.addEventListener(Event.ENTER_FRAME,on_enter_frame); } public function on_enter_frame(event:Event) { if (keyboard_input.is_left()) { circle_hero.gotoAndPlay(2); circle_hero.scaleX=-1; circle_hero.x-=5; }else if (keyboard_input.is_right()) { circle_hero.scaleX=1; circle_hero.x+=5; circle_hero.gotoAndPlay(2); }else if (keyboard_input.is_up()) { circle_hero.y-=5; circle_hero.gotoAndPlay(2); }else if (keyboard_input.is_down()) { circle_hero.y+=5; circle_hero.gotoAndPlay(2); }else {circle_hero.gotoAndPlay(1);} } } } Последний раз редактировалось udaaff; 11.03.2011 в 14:39. |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
ну, видимо у вас в первом кадре стоит stop(), а вы зачем-то делаете для перехода gotoAndPlay(2), проскакиваете быстро 2-й кадр и возвращаетесь на первый. А нужно, видимо, gotoAndStop(2).
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 4
|
хм наверно я немного неправильно сформулировал суть проблемы
код нормально обращается и к первому и ко второму кадру символа, но почему-то не воспроизводит находящиеся там анимации. При этом в этих кадрах нету никакого кода типа stop() |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 4
|
наверно я плохо сформулировал суть проблемы
код нормально обращается и к первому и ко второму кадру символа, но анимации находящиеся в них не воспроизводятся, а останавливаются на их первом кадре; хотя в них нет никакого кода типа stop() |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
потому что каждый кадр у вас идет переход на 2 кадр
__________________
low + |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 4
|
посоветуйте тогда пожалуйста как сделать так что бы он воспроизводил анимацию, содержащуюся во втором кадре
|
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
вам нужно поменять механику обработки событий, совсем не обязательно каждый кадр проверять какая кнопка нажата, вы ведь можете сделать обработчик на нажатие клавиши и на отпускание.
При нажатии двигаете персонажа и делаете gotoAndPlay(2), а при отпускании останавливаете передвижение и делаете stop() Для движения можно использовать ENTER_FRAME так, как у вас сделано сейчас
__________________
low + |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|