![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Есть главный класс, который отвечает за добавление и удаление дополнительных классов, таких как класс реализацией процесса игры, и класс с выбором уровней. Все просто, но есть одна проблема.
В выборе уровня кликаю по символу (в котором же присобачен слушатель MouseEvent.MOUSE_CLICK, потом этот символ диспатчит событие "CLICK_ME") а в классе выбора уровня его слушатель, который удаляет класс с выбором уровня и добавляет класс с самой игрой , после нажатия и перехода на класс с игрой , слушатели нажатия клавиш перестают отвечать, для этого нужно кликнуть по экрану , в итоге флэха отвечает на нажатия клавиш и все работает хорошо, перейдя в выбор уровней, а потом в игру, снова нужно кликнуть по экрану. Почему так происходит? В чем проблема? При этом если в символе событие MouseEvent.MOUSE_WHEEL, то в игре также нужно поводить мышкой чтобы заработало. НО если я при переходе в саму игру НЕ УДАЛЯЮ класс с выбором уровней, то все работает нормально. Почему, что меняется в этот раз меняется ? Не удаляются обработчик события клика? Я уже думал, что это из-за параметра события useCapture , но нет. Примеры: Класс с выбором уровня: public function addListener():void { this.icon.buttom.addEventListener(MouseEvent.MOUSE_DOWN, onClick); } public function onClick(event:MouseEvent):void { this.dispatchEvent( new Event("CLICK_ICON")); } public function Model(_stage:Stage) { this._stage = _stage; addMenu(); } public function addMenu():void { menu = new GameMenu(_stage); this.addChild(menu); menu.addListener(); menu.addEventListener("CLICK_ICON", onClickIcon); } public function delMenu():void { removeChild(menu); } public function onClickIcon(event:Event):void { this.removeEventListener("CLICK_ICON", onClickIcon); trace ("onClickIcon"); menu.addListener(); delMenu(); addCTR(); } public function addCTR():void { ctr = new ControllerForLevels(_stage); addChild(ctr); ctr.addlevel_1(); ctr.addEventListener("END_LEVEL", onEndLevel); } public function onEndLevel(event:Event):void { delCTR(); addMenu(); this.addChild(menu); } public function delCTR():void { removeChild(ctr); ctr.removeEventListener("END_LEVEL", onEndLevel); } Как быть? Заранее спасибо! Добавлено через 2 часа 36 минут Может кто сталкивался, подскажите, что не так |
![]() |
Часовой пояс GMT +4, время: 00:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|