|
|
|||||
Регистрация: Apr 2012
Сообщений: 88
|
Наследование EventDispatcher
Смотрел исходники одного приложения и там был класс который отвечал за событие нажатия клавиш клавиатуры.
Именно только он является наследником Какими особенностями обладает этот класс. public class KeyManager extends EventDispatcher { public static const ONE_EVENT:String = "one_event"; public static const TWO_EVENT:String = "two_event"; private var state:String; private var stageObj:DisplayObject; private var sound:SoundTransform = new SoundTransform(); public function KeyManager(s:DisplayObject) { state = STATE_INIT; stageObj = s; stageObj.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown); } private function onKeyboardDown(e:KeyboardEvent){ if(e.keyCode==50){ dispatchEvent(new Event(START_DANCING)); } } |
|
|||||
Регистрация: Nov 2013
Сообщений: 86
|
Ага, странный какой-то класс. Если бы он проверял, зажата ли сейчас какая-то клавиша, или какая из двух была нажата раньше (для управления), то была б еще польза. А так он даже не универсальный: только для одной клавиши и одного типа события.
|
|
|||||
Регистрация: Apr 2012
Сообщений: 88
|
Ну это коротенький пример.
Да, там еще есть отслеживание события когда клавишу отпустили, при этом удаляется прослушивание этого событие и добавляется слушатель на на нажатие клавиши. И наоборот. А в каких случаях тогда используют класс EventDispathces? |
|
|||||
Цитата:
В тех случаях, когда объект не надо добавлять в дисплей лист, но он должен уметь отправлять события. В этом случае самый разумный способ - унаследовать его именно от EventDispatcher
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2012
Сообщений: 88
|
Цитата:
Действительно, объект класса не был добавлен на сцену. |
Часовой пояс GMT +4, время: 18:51. |
|
« Предыдущая тема | Следующая тема » |
|
|