![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 29
|
Привет.
Пара вопросов ![]() Main.as package { import flash.display.Sprite; import flash.events.Event; import flash.display.DisplayObject; import elements.Tower; import flash.events.MouseEvent; /** * ... * @author reQuiem */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point addTower(); } private function addTower():void { var tower_1: Tower = new Tower(); this.addChild(tower_1); tower_1.x = 300; tower_1.y = 300; tower_1.addEventListener("towerClick", towerClicked); trace("tower ready"); } public function towerClicked (e:Event): void { trace("tower clicked"); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFunc); stage.addEventListener(MouseEvent.MOUSE_UP, mouseUPFunc); } private function mouseMoveFunc (e:MouseEvent ):void { trace("mouse MOVE"); } private function mouseUPFunc (e:MouseEvent ):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFunc); } } } Tower.as package elements { import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.DisplayObject; import flash.events.EventDispatcher; /** * ... * @author reQuiem */ public class Tower extends MovieClip { public function Tower() { this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc); } public function mouseMoveFunc():void { trace("OK"); } public function mouseDownFunc(e:MouseEvent): void { dispatchEvent(new Event("towerClick")); } } } Вопросы: 1)Если я диспатчу событие из класса то подписать на это событие я мог только экземпляр этого класса? просто addEventListener("towerClick", towerClicked); не ловит, а tower_1.addEventListener("towerClick", towerClicked); ловит. 2) не получается вызвать методы( и менять значение переменных) через экземпляр класса в функции отлично от той где я его создаю. то есть сейчас в мейне у меня есть но если я попытаюсь изменить tower_1.x в любом другом месте - выдает ошибку. ( в это время tower_1 гарантированно существует и например ловит\кастует события). Вот пока все. Знаю что вопросы очень нубские но пытаясь пересесть кадров они мне пока не даются. Спасибо. |
![]() |
Часовой пояс GMT +4, время: 05:10. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|