![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Артём, у стейджа нет прозрачности (IllegalOperationError)))))
Слушать стейдж совершенно нормально, он же плеер. Ненормально отправлять детей
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Цитата:
package { import flash.display.Stage; import flash.events.KeyboardEvent; public class KeyboardManager { static private var keys:Array = []; static public function init(_stage:Stage):void { _stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); _stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); } protected static function onKeyUpHandler(event:KeyboardEvent):void { keys[event.keyCode] = false; } protected static function onKeyDownHandler(event:KeyboardEvent):void { keys[event.keyCode] = true; } static public function isKeyDown($keyCode:int):Boolean { return keys[$keyCode]; } } } package Menu { public class GameMenu extends Sprite { public var icon:_iconLevel; public function GameMenu() { this.addEventListener(Event.ADDED_TO_STAGE, onAddStage); } protected function onAddStage(event:Event):void { this.removeEventListener(Event.ADDED_TO_STAGE, onAddStage); icon = new _iconLevel(); stage.addChild(icon); addListener(); } public function addListener():void { icon.addEventListener(MouseEvent.MOUSE_DOWN, onClick); } public function onClick(event:MouseEvent):void { dispatchEvent( new Event("CLICK_ICON")); } } } |
|
|||||
|
Кейменеджер годится.
Только конвенция наименования... Во флеше принято использовать префикс "_" перед приватными переменными, а не параметрами. То есть в init просто stage, а keys как раз _keys. Знак доллара – указание, что метод проксирует зафинализированный. protected для статиков – ну, это... это нужно очень понимать, зачем Лучше private.Про класс меню, как раз таки, не надо так. Надо icon положить в себя (в GameMenu). GameMenu же добавится в root тобой же. (это главный класс приложения, обычно его называют Main). А root уже сам флешплеер положит на stage. Получится, stage -> root -> GameMenu -> icon. Всё логично, от большего-к-меньшему, и никто не ломится куда-то ввысь. Т.к. stage здесь не нужен, то код можно сжать как-то так: package Menu { public class GameMenu extends Sprite { public var icon:_iconLevel; //классы лучше называть с большой буквы, без подчеркивания вначале public function GameMenu(){ icon = new _iconLevel(); addChild(icon); icon.addEventListener(MouseEvent.MOUSE_DOWN, onClick); } public function onClick(event:MouseEvent):void{ dispatchEvent( new Event("CLICK_ICON")); } } }
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|