![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
Добрый день, хелп, в очередной раз туплю
в классе main пишу соответственно объект добавиться на сцену, ссылка на stage у него будет, НО ведь сначала ведь происходит создание нового объекта, а лишь потом добавление на сцену, а так как внутри класса есть слушатели события клавиатуры, пишу в конструкторе класса а тут и борода, stage = null, так как произошла только инициализация, но не добавление на сцену ок, значит пишет в конструкторе перед добавление слушателя итог - та же борода, stage = null получается тогда два варианта, либо в конструктор передавать ссылку на stage или создать public function, которую вызывать после добавление класса на сцену и в ней объявлять слушателей сцены? п.с. мне вообще данный класс не нужно добавлять на сцену, нужно добавлять классы, которые в нём создаются и добавляются на сцену, но сути вопроса не меняет, т.к если его не добавить на сцену, он не получит ссылку на stage п.п.с. что интересно, в этом классе, если создавать другие классы на этапе вызова конструктора, то stage.addChild() не работает, т.к. stage = null, а this работает, но выходит, что this становится ссылкой на сцену, после addChild(createSpace). |
|
|||||
|
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Чушь.
stage.addChild и this.addChild - это разные вещи. stage.addChild - это добавление дитя в DisplayList объекта stage. this.addChild - это добавления дитя в DisplayList текущего объекта. Если вы сравните потом
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
Tails в вашем варианте всё заработало, после того, как перенёс слушатели в function init(e:Event = null):void (до этого были в конструкторе), выходит ссылку на stage получают, только слушатели, которые вызываются в init? Я то думал, что весь класс получает в итоге, хотя всё и не работало))
ZackMercury я знаю, что разные вещи, наверно я неудачно выразился Последний раз редактировалось neonoviiwolf; 15.06.2015 в 18:04. |
|
|||||
|
Поле stage принадлежит всему экземпляру класса. Просто в конструкторе оно ещё не задано.
Учтите, что ссылка на stage может быть снова утеряна, после события: Event.REMOVED_FROM_STAGE.
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
спасибо, а то через раз, от незнания, на грабли наступал
а кстати, почему пишут (e:Event = null) ? работает так же и без null |
|
|||||
|
Если не указать значение по умолчанию, то нельзя будет вызвать вот так
А только так или
__________________
There is no thing in this world that is not simple. |
|
|||||
|
Цитата:
вызываеться метод без параметров, и если оставить у вас будет аргумент ошибка
__________________
return this... |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
ок, понял
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|