![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Sep 2015
Сообщений: 20
|
В одном классе я кидаю кастомное событие
В другом классе я его ловлю и кидаю дальше private function init():void { menuInfo.addEventListener(StateEvent.CHANGE_STATE, onStateChange); } private function onStateChange(event:StateEvent):void { dispatchEvent(event); // тут ошибка.. } Что делать? Почему ошибка? |
|
|||||
|
Регистрация: Sep 2015
Сообщений: 20
|
Я перепроверял, точно кидаю свой StateEvent который наследуется от Event. Даже брейк поинтом проверял, приходит тоже StateEvent с теми данными которые я передал..
|
|
|||||
|
Регистрация: Sep 2015
Сообщений: 20
|
код ивента, может с ним что-то не так?
package States.Events { import flash.events.Event; public class StateEvent extends Event { public static const CHANGE_STATE:String = "change state"; private var _newState:int; public function StateEvent(type:String, newState:int, bubbles:Boolean = false, cancelable:Boolean = false) { super(type, bubbles, cancelable); _newState = newState; } public function get newState():int { return _newState; } } } override public function update(delta:Number):void { if (_model.isMouseDown) { dispatchEvent(new StateEvent(StateEvent.CHANGE_STATE, StateStack.PLAY_STATE)); } } Все я понял, надо в ивенте еще дописать клон новый код ивента package States.Events { import flash.events.Event; public class StateEvent extends Event { public static const CHANGE_STATE:String = "change state"; private var _newState:int; public function StateEvent(type:String, newState:int, bubbles:Boolean = false, cancelable:Boolean = false) { super(type, bubbles, cancelable); _newState = newState; } public function get newState():int { return _newState; } // always create a clone() method for events in case you want to redispatch them. public override function clone():Event { return new StateEvent(type, newState, bubbles, cancelable); } } } |
|
|||||
|
Больше ничему не добавлен этот же обработчик? Вполне возможно, что он дергается по какому-то другому событию.
Я бы ради эксперимента попробовал еще явным образом привести к типу Если и в этом случае отвалится, значит проблема вызвана чем-то другим. А в этом месте падает как следствие п.с. Вряд ли конечно проблема в "change state", но пробелов в таких делах лучше избегать |
|
|||||
|
Как это забыл то?
А это что? |
|
|||||
|
Регистрация: Sep 2015
Сообщений: 20
|
там выше код, без этого кусочка, а потом я выложил пофикшиную версию на память потомкам
![]() вместе с Clone все работает как нужно |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|