![]() |
Снова stage, снова не понимаю
Добрый день, хелп, в очередной раз туплю
в классе main пишу Код AS3:
ведь сначала ведь происходит создание нового объекта, а лишь потом добавление на сцену, а так как внутри класса есть слушатели события клавиатуры, пишу в конструкторе класса Код AS3:
ок, значит пишет в конструкторе перед добавление слушателя Код AS3:
получается тогда два варианта, либо в конструктор передавать ссылку на stage или создать public function, которую вызывать после добавление класса на сцену и в ней объявлять слушателей сцены? п.с. мне вообще данный класс не нужно добавлять на сцену, нужно добавлять классы, которые в нём создаются и добавляются на сцену, но сути вопроса не меняет, т.к если его не добавить на сцену, он не получит ссылку на stage п.п.с. что интересно, в этом классе, если создавать другие классы на этапе вызова конструктора, то stage.addChild() не работает, т.к. stage = null, а this работает, но выходит, что this становится ссылкой на сцену, после addChild(createSpace). |
Код AS3:
|
Чушь.
stage.addChild и this.addChild - это разные вещи. stage.addChild - это добавление дитя в DisplayList объекта stage. this.addChild - это добавления дитя в DisplayList текущего объекта. Если вы сравните потом Код AS3:
|
Tails в вашем варианте всё заработало, после того, как перенёс слушатели в function init(e:Event = null):void (до этого были в конструкторе), выходит ссылку на stage получают, только слушатели, которые вызываются в init? Я то думал, что весь класс получает в итоге, хотя всё и не работало))
ZackMercury я знаю, что разные вещи, наверно я неудачно выразился |
Поле stage принадлежит всему экземпляру класса. Просто в конструкторе оно ещё не задано.
Учтите, что ссылка на stage может быть снова утеряна, после события: Event.REMOVED_FROM_STAGE. |
Цитата:
|
спасибо, а то через раз, от незнания, на грабли наступал
а кстати, почему пишут (e:Event = null) ? работает так же и без null |
Если не указать значение по умолчанию, то нельзя будет вызвать вот так
Код AS3:
Код AS3:
Код AS3:
|
Цитата:
Код AS3:
Код AS3:
|
ок, понял
|
| Часовой пояс GMT +4, время: 05:52. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.