![]() |
Цитата:
Цитата:
Цитата:
Цитата:
Idon'tKnow, ваш код тоже убрал тот баг, но главной проблемы не решил - анимация все равно проигрывается один раз и все. Плюс когда клавиша отпущена, анимация движения в эту сторону как раз начинает проигрываться. Чяднт :С |
Давайте кое-что проясним.
Вот внизу окошко, в котором Вы пишете сообщения. Поставьте туда курсор и нажмите любую клавишу с буквой на клавиатуре. Не отпускайте. Что Вы видите? Событие "нажали клавишу ..." отправляется постоянно, пока нажата клавиша, с определенным интервалом. Соответственно Ваш обработчик нажатия точно так же выполняется с определенным интервалом снова и снова, пока клавиша удерживается нажатой. Не один раз при нажатии, а постоянно. Вы постоянно отправляете своего героя на начальный кадр анимации. А "проигрывается один раз" видимо лишь потому, что между первым событием при нажатии и началом серии пауза чуть больше, чем интервал самой серии (клавиатура выжидает, иначе мы бы замаялись стирать двойные-тройные буквы), и за эту паузу Ваш герой успевает сделать пару шагов))), после чего возвращается к первому кадру чаще, чем происходит переход на следующий кадр. По этой же причине Цитата:
Добавлено через 16 минут Можно попробовать сделать так: завести две переменных, хранящих текущее состояние героя: Boolean идёт/стоит, и String или uint, хранящий направление. При получении события "клавиша ... нажата" проверяете первым делом, стоит герой или идет. Соответственно две ветки условий — если стоит, то надо начать идти в заданном клавишей направлении, и записать в флаги значение true ("шагает") и это направление. А если уже идет, то надо проверить, в том ли направлении он идет, и если в том, то ничего делать не надо, а нет — значит переходим на другой ключевой кадр и записываем в нашу переменную направления это Новое направление. При отпускании клавиши соответственно переходим на начальный кадр текущего направления и стоп. И записываем в "шагает/стоит" false. И этими же флагами пользуемся в обработчике ентерфрейма — если стоит, ничего не делаем; если идет, то меняем координату в соответствии с направлением. Добавлено через 54 минуты Код AS3:
|
Wolsh, УРА все заработало! Правда, огромное спасибо, удивляюсь, как вам не влом было писать такой здоровый подробный ответ новичку, это очень приятно :)
|
абсолютно всё сделано не павильно
|
| Часовой пояс GMT +4, время: 10:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.