![]() |
Как использовать KeyboardEvent в классах?
Не могу понять структуру кода. Как использовать наследование к KeyboardEvent ?
у меня есть основной класс Engine - вход в игру. Далее имеется класс Ship - он размещается, я так понимаю на stage ( сцене ) класса Engine, так как он главный класс. Я прописал события клавиатуры в классе Ship, только ничего не работает. Как правильно расположить KeyboardEvent в классе Ship ? Код AS3:
За ранее спасибо. |
Как только будет создан экземпляр класса Ship, доступа к stage не будет и подписаться на событие KeyboardEvent.KEY_DOWN в конструкторе не получится. Нужно дождаться, пока Ship не будет добавлен на stage. В конструкторе класса Ship напишите:
Код AS3:
Код AS3:
|
да, все работает, огромное спасибо. а можете конкретней объяснить, почему так происходит ?
Код:
Как только будет создан экземпляр класса Ship, доступа к stage не будет |
Потому что он еще не добавлен в список отображения во время инициализации конструктора. Ссылка на стейдж появляется только после того, как объект добавили в дисплей лист через addChild.
|
я думаю в последующем мне придется часто использовать данный код, так как я не смогу работать объектами, можно сказать, не оттянув время для его инициализации на сцене, верно?
Добавлено через 1 минуту а нужно ли после писать ? Код AS3:
|
Цитата:
|
Цитата:
|
Цитата:
Один раз он сработает. Код AS3:
|
энтерфрейм лучше использовать для мувиклипов, а для для однофреймовых спрайтов сетинтервал:)
|
чем лучше?
Цитата:
А вообще, это Цитата:
Для спрайта так же можно использовать энтер фрейм, как и для мувиклипа и для других дисплей объектов |
Я нигде не написал, что нельзя. Я написал лучше.
|
Ну вот отсюда и был вопрос, чем лучше?
|
Лучше тем что вы управляете частотой интервала.
|
Цитата:
Где-то полгода назад споткнулся сам на этой "фиче". Неужто поправили? Добавлено через 5 минут Цитата:
|
То что любой таймер "завязан на энтерфрейме" я не знал. То есть вы предлагаете манипулировать фреймрейтом?
|
В данном случае да, его (энтерфрейм) использование здесь оправдано. Таймер на мой взгляд нужен для выполнения "отложенных" операций типа проверки на таймаут коннекта или там еще что. Даже твины все, сделанные по времени, опираются на кадры, хотя и используют getTimer() для определения разницы во времени между кадрами, чтобы успеть отобразить объект в конечной точке в заданное время.
|
Цитата:
|
| Часовой пояс GMT +4, время: 23:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.