|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2011
Сообщений: 70
|
Доступ к Document Class во FlashDevelop
У меня есть проект во FlashDevelop. В нем задан Document Class. Можно ли получить доступ к экземпляру Document Class и соответственно к его методам из других классов этого же проекта?
|
|
|||||
Можете передать ссылку на него в нужный класс и там уже будут доступны его публичные методы и перем.
Напр. ... public var myName:String = "DocumentClass"; // напр в Main создается новый объект и передается ссылка на Main var item:Item = new Item( this ); .... public class Item { private var _main:Main; public function Item( main:Main ) { _main = main; trace( _main ); // [ object Main ]; trace( _main.myName ); // DocumentClass } } |
|
|||||
Регистрация: Dec 2011
Сообщений: 70
|
Ясно. Спасибо.
Кстати, я тут поэкспериментировал и нашел еще один способ: Существуют ли более простые способы? Может, есть стандартная возможность (например, какое-то ключевое слово), через которое можно обратиться к Document Class? |
|
|||||
Да, вот root в основной флешке ( если она не была загружена внутрь другой ) всегда указывает на документ класс.
Но вообще такие вещи считаются плохой практикой. В ООП стандартно принято делать так чтобы "дочерние" объекты не имели ссылок на "родительские", ну а документ класс является родителем по отношению ко всем прочим. Плохо это потому, что когда возникнет потребность в переносе класса в другой проект будут сложности с его адаптацией к окружению... Ещё потому, что какой-то из дочерних классов будет манипулировать родительским, что может привести к ошибкам в других дочерних классах и дебажить такую ситуацию иногда будет крайне трудно. |
|
|||||
Регистрация: Dec 2011
Сообщений: 70
|
Например, мне нужно выполнять определенные действия с классом Main по событиям, которые генерируются в дочерних MovieClip.
Может, более правильным решением будет подписать Main на события дочерних мувиков, а доступ к Main дочерним мувикам не давать? |
Часовой пояс GMT +4, время: 05:12. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|