![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Не могу понять структуру кода. Как использовать наследование к KeyboardEvent ?
у меня есть основной класс Engine - вход в игру. Далее имеется класс Ship - он размещается, я так понимаю на stage ( сцене ) класса Engine, так как он главный класс. Я прописал события клавиатуры в классе Ship, только ничего не работает. Как правильно расположить KeyboardEvent в классе Ship ? addEventListener(KeyboardEvent.KEY_DOWN,keyDownF); stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownF); this.addEventListener(KeyboardEvent.KEY_DOWN,keyDownF); За ранее спасибо. |
|
|||||
|
Как только будет создан экземпляр класса Ship, доступа к stage не будет и подписаться на событие KeyboardEvent.KEY_DOWN в конструкторе не получится. Нужно дождаться, пока Ship не будет добавлен на stage. В конструкторе класса Ship напишите:
И далее напишите: |
|
|||||
|
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
да, все работает, огромное спасибо. а можете конкретней объяснить, почему так происходит ?
|
|
|||||
|
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
я думаю в последующем мне придется часто использовать данный код, так как я не смогу работать объектами, можно сказать, не оттянув время для его инициализации на сцене, верно?
Добавлено через 1 минуту а нужно ли после писать ? |
|
|||||
|
Цитата:
Один раз он сработает. package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main() { var test:Test = new Test(); addChild(test); } } } import flash.display.Sprite; import flash.events.Event; internal class Test extends Sprite { public function Test() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { trace("Добавлено"); // выводится только один раз } } |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
энтерфрейм лучше использовать для мувиклипов, а для для однофреймовых спрайтов сетинтервал
![]() |
|
|||||
|
чем лучше?
Цитата:
А вообще, это Цитата:
Для спрайта так же можно использовать энтер фрейм, как и для мувиклипа и для других дисплей объектов |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|