![]() |
Обращение из кода класса к объекту на экране
Помогите пожалуйста разобраться как можно обращаться к объекту на экране из класса.
Я нашел смог найти решение только для панели действия в самом флеше т.е. размещение кода в кадре временной шкалы или самом объекте. Там все просто это или по имени или через this. Это не то. Если у меня есть класс main который выполняет все функции и указан в свойствах документа .fla как основной класс. Как мне обратиться в нем к любому объекту на экране? по идее нужно запрашивать у stage... но я нашел вот такой код но он не работает. Код AS1/AS2:
|
DisplayList - не линейная модель, а иерархическая. Это значит, что каждый объект Sprite/MovieClip может хранить в себе ещё объекты, и там координаты будут относительными.
stage - корень DisplayList, в него никто не лезет, кроме новичков. В stage хранится экземпляр главного класса(Main), ребёнком stage. В свою очередь у вашего главного класса может быть ещё один ребёнок, Sprite/MovieClip, либо любой другой класс, унаследованный от DisplayObject. Вы не будете обращаться к ребёнку в DisplayList через DisplayList, а будете обращаться к нему через ту же ссылку, через которую отправили его на сцену. Код AS3:
|
Хорошо, тоесть возможность управления объектами, расположенными на сцене в самом флеше, а не созданными где то в коде, отсутствует? ну такая возможность есть только у не классового подхода.. Это странно
|
Это чисто Ваши инсинуации.
Есть несколько причин, почему код в документ-классе не "видит" ваш объект на сцене. 1) объект появляется не в первом кадре, то есть на момент отработки кода его нет. 2) объект находится внутри другого объекта (контейнера). 3) у объекта имя (instance name) не уникальное, т.е. на сцене есть несколько объектов с одинаковым именем. В остальных случаях должно работать — если объект в первом кадре, ему назначено instance name "Testname" и он находится непосредственно в данном ролике, к нему можно обратиться Testname.play() или this.Testname.play(). |
| Часовой пояс GMT +4, время: 06:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.