|
|
|||||
Регистрация: May 2009
Сообщений: 25
|
обращение к классу документа
Такой абстрактный пример.
Есть класс "Main" – класс документа. и в лайбрари лежит мувиклип с классом "Unit". Main.as package { import flash.display.Sprite; import flash.events.MouseEvent; public class Main extends Sprite { private var _n:Number; public function Main() { _n = 10; stage.addEventListener(MouseEvent.CLICK, onClick); } public function get getN():Number { return _n; } public function onClick(e:MouseEvent):void { var newUnit:Unit = new Unit(); } } } package { import flash.display.MovieClip; public class Unit extends MovieClip { public function Unit() { trace(Main.getN); } } } 1119: Access of possibly undefined property getN through a reference with static type Class. Не хотел создавать отдельную тему, т.к. вопрос скорее всего ламерский) Но копания на форуме привели меня только к тому, что я обращаюсь к самому классу Main, а надо к его экземпляру. Подскажите пожалуйста, как это сделать? stage, root пробовал, не катит. |
|
|||||
Если ты хочешь получить то или инную переменную, функцию. Делай ее статичной.
Так же придется и переменную _n делать статичной Теперь можешь получить значение Или если этот класс дочерний то trace((parent as Main).getN) и не надобудет делать перменные и функции статичными. |
|
|||||
Регистрация: May 2009
Сообщений: 25
|
Вот, точно. Со статиками пытался, но я приписывал только к переменной и меня всё равно посылали.
Спасибо! |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
Регистрация: May 2009
Сообщений: 25
|
Цитата:
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
Регистрация: May 2009
Сообщений: 25
|
Дошло, спс.
|
|
|||||
Регистрация: May 2004
Адрес: Ukraine
Сообщений: 23
|
Есть ещё один вариант.
Нужно в классе Main сделать статическую ссылку-переменную на саму себя: public class Main extends Sprite { private var _n:Number; public static var instance:Main; public function Main() { this.instance = this; _n = 10; stage.addEventListener(MouseEvent.CLICK, onClick); } ... } А вообще чтобы ты понимал: то что ты написал trace(Main...); для флеша это что? Это класс(описание класса). Это даже не объект и не свойство в Unit. А вот Main.instance - это именно объект твоего документа. |
|
|||||
Регистрация: May 2009
Сообщений: 25
|
Цитата:
Кстати, EXFlash, если писать как в вашем примере: Компилятор опять же выдаёт ошибку №1119. Убираю this перед instance – всё работает. Почему так? Вроде this должен как раз ссылаться на объект документа в данном случае. Последний раз редактировалось Slip_91; 22.08.2010 в 10:11. |
|
|||||
Регистрация: May 2004
Адрес: Ukraine
Сообщений: 23
|
Стыдно. Как жестко я ступил!
Естественно не Ну где-то так :-) Последний раз редактировалось EXFlash; 22.08.2010 в 11:47. |
Часовой пояс GMT +4, время: 17:00. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|