Показать сообщение отдельно
Старый 15.06.2015, 17:14
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Снова stage, снова не понимаю

Добрый день, хелп, в очередной раз туплю
в классе main пишу
Код AS3:
			var createSpace:CreateSpace = new CreateSpace();
			addChild( createSpace);
соответственно объект добавиться на сцену, ссылка на stage у него будет, НО
ведь сначала ведь происходит создание нового объекта, а лишь потом добавление на сцену, а так как внутри класса есть слушатели события клавиатуры, пишу в конструкторе класса
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN, setKeyPressed);
а тут и борода, stage = null, так как произошла только инициализация, но не добавление на сцену
ок, значит пишет в конструкторе перед добавление слушателя
Код AS3:
addEventListener(Event.ADDED_TO_STAGE, init);
итог - та же борода, stage = null

получается тогда два варианта, либо в конструктор передавать ссылку на stage или создать public function, которую вызывать после добавление класса на сцену и в ней объявлять слушателей сцены?

п.с. мне вообще данный класс не нужно добавлять на сцену, нужно добавлять классы, которые в нём создаются и добавляются на сцену, но сути вопроса не меняет, т.к если его не добавить на сцену, он не получит ссылку на stage
п.п.с. что интересно, в этом классе, если создавать другие классы на этапе вызова конструктора, то stage.addChild() не работает, т.к. stage = null, а this работает, но выходит, что this становится ссылкой на сцену, после addChild(createSpace).