![]() |
не получается вызвать/записать свойство в объект класса
Такая вот диллема возникла, перехожу с АС2 на АС3
ну не могу понять хоть убей и все 1. создаю новый документ Document class пишу main.root_class создаю соответствующую папку и директорию 2. рисую объекты которые мне нужны (создаю в папке main соответствующие классы) стоит задача загрузить картинки из XML с парсом XML проблем не возникло, но не могу сделать следующее. мне надо вставить в нарисованный в руте объект я дал имя ему cont_ т.е. не название класса а именно имя переменной cont_ и соответственно при парсинге XML мне нужно в нем создать экземпляр определенного объекта: Код AS3:
Запарился уже :wacko: |
Ну правильно все. Он не знает такого свойства, создайте класс, наследующийся от него и обьяви там это свойство. В классах АС2 кстати он так же бы сругался, скорее с АС1 переходишь. (я кстати тоже, сначала АС1, потом АС3, потом АС2 :))
Если лень - то вот (но лучше так не делай) Код AS3:
|
Ну у меня класс root_class имеется, я так понимаю, что явно задавать свойство не требуется, если соответствующий объект есть на тайм лайне... вернее даже я думаю: не вызовет ли это конфликта?
Код AS3:
причем в строке trace(this.cont_r) - выводит [object cont] (я уже переименовал переменную cont_ в cont_r, чтобы не было вопросов) Добавлено через 11 минут вот попробовал из класса XML_doc вызвать root_class Код AS3:
Нет вру root_class видно, но если сделать так: Код AS3:
Вообще не могу понять, как к таймлайну обратиться... получается что в Document class пишу main.root_class - это значит что я присваиваю рут как экземпляр root_class... тогда как же мне к этому экземпляру обратиться и к его свойствам, тобиш экземплярам на тайм лайне? Я даже пробовал пойти от обратного.. т.е.: сделать в классе XML_doc свойство objects и записать туда массив объектов но из конструктора root_class свойства XML_doc.objects тоже не могу получить... пишет ошибку компиляции !? Я же ведь объявил классы как публичные и динамичные!? в чем проблема не пойму, уже всю голову сломал себе |
Цитата:
Я походу туплю, это вроде АС2 стайл, попробуй с getChildByName |
Я и так уже пробовал!
1061:Call to a possibly undefined method getChildByName through a reference with static type Class %( Задал явно свойство cont_r Как и предполагал, он мне написал типа: Конфликт, такая переменная уже существует Голова уже кипит просто, ничего не понимаю, чего надо этой железяке! Такое ощущение, что он видит только то что root_class - это объект, а доступа к его свойствам просто нет! |
Воспользуйся кастингом, чтобы он увидел это свойство.
Про него можно прочитать в соседней ветке, AS3 Tips&Tricks. Откастуй в Sprite, например. Код AS3:
|
а разве экземпляр не создается при компиляции мультика?... ведь фактически они уже существуют на таймлайне? или надо сделать еще и экземпляр root_class и добавить его на таймлайн, к которому я никак не могу достучаться.... какойто замкнутый круг тогда получается!
Добавлено через 2 минуты Он же мне в трейс "Хеллоу ворлд!!!" пишет... значит конструктор запускается, значит экземпляр root_class создается, или я чегото не догоняю? он и в трейс пишет [object root_class] - т.е. объект (экземпляр рут_класса) |
Запускается конструктор того, экземпляр чего не был создан? Кто то из нас сошел с ума - либо я, либо флеш.
Прикрепи исходник. |
Заработало вот так
Код AS3:
Когда начал эксперементировать с кастингом, компилятор вроде заткнулся :)но начал в вывод ругаться, и выдавать DOM... я обратил внимание на DOM изучил его и вывел такой вот способ :) может не новый, но все равно имейте ввиду причем работает именно так Код AS3:
|
Когда создается мультик и запускается твой конструктор в dynamic классе, строчка
Код AS3:
|
| Часовой пояс GMT +4, время: 00:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.