|
|
|||||
Регистрация: Mar 2011
Сообщений: 59
|
Доступ объекта к stage
Обязательно ли добавлять объект на экран, что бы иметь доступ к стейджу?
Еще есть вариант передавать ссылку на стейдж в объект. А можно как-то другим способом достичь стейджа? |
|
|||||
Есть, но все это не правильно. Доступ к стейджу нужно получить только при добавлении объекта в дисплей лист. Если получать доступ другим способом, это может вылиться в такие проблемы с отладкой, что будет очень не просто их вылечить
|
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
Можно добавить как статик в класс который будет экстентдиться дисплей классами. Спрайтом, например.
|
|
|||||
Ну да) можно. Потом откуда ни возьмись, найдется объект, который занулит эту ссылку (возможно по ошибке где-то будет код, зануляющий ссылку), и вся эта конструкция таинственным образом ляжет, а найти что произошло и где, в таком случае, будет очень сложно. Сталкивался на практике.
|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
А можно небольшой пример вот такого статического геттера?
|
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
например так
private static var stageRef:Stage; public function Main(){ if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stageRef = this.stage; } public static function get stageRef():void { return stageRef; } |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Isfet, спасибо, в целом понятно.
Хотелось бы еще пару вопросов задать на этот счет: 1. Вот эта конструкция, которая у вас в Main: Я уже ее видел несколько раз. Кажется, ее Wolsh изобрел, но возможно это что-то из классики. Она обязательна? Это какая-то подстраховка, профилактика, от тормозных плееров? Вроде и без нее все работает нормально. 2. А вот это единственный способ ссылку на стэйдж заиметь? Разве нельзя было просто запихнуть стэйдж в переменную, если это основной класс, то вроде же такое возможно. (Для неосновного, наверное, нет). |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
Цитата:
Цитата:
А вообще на самом деле, ни разу не сталкивался с проблемой получения ссылки на стейдж, так как все добавляю в Main класс, ну разве только в случае драга, чтобы подписаться на "mouseMove", но опять же если объект драггается, то значит это спрайт или мувик, и соответственно у него есть ссылка на стейдж. |
Часовой пояс GMT +4, время: 21:50. |
|
« Предыдущая тема | Следующая тема » |
Теги |
stage |
Опции темы | |
Опции просмотра | |
|
|