Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как вычислить объект? (http://www.flasher.ru/forum/showthread.php?t=119009)

Ar4ibald 10.12.2008 00:49

как вычислить объект?
 
Привет.
Пишу во фреймах, поэтому сталкиваюсь с проблемой использования некоторых мувиклипов. Как к ним правильно обращаться?
Вот ситуация - на сцене есть мувик mc1 и mc2. Внутри mc2 - еще два мувика один в другом. Хочу из самого глубокого мувика вызвать mc1 и не поолучаеться - говорит, что такой объект неизвестен.

делал я просто
Код AS3:

this.parent.parent.parent.mc1.alpha=.5;

Выскакивает ошибка. Как уже не пробовал играться с парентами - ничего не получаеться. Подскажите, как правильно обращаться к мувикам в As3? если пишешь во фреймах.

ZlPredator 10.12.2008 01:22

можно
Код AS3:

root.mc1.alpha=.5;

Хотя и твой код должен работать. Скорее всего ты обращаешься в момент, когда mc1 еще нету.

Ar4ibald 10.12.2008 01:26

спасибо, буду пробовать.
А вот еще один вопросик: в As2 можно было в любом месте создавать по типу
Код AS1/AS2:

_root.store=100;

Потом в любом месте мувика использовать это.
А в As3 пробовал, но такое не получаеться.

kackbip 10.12.2008 09:36

В строке
Код AS3:

this.parent.parent.parent.mc1.alpha=.5;

у вас неизвестная составляющая является mc1. Т.е. если вы протрейсите то увидите что mc1=undefined. Потому, что DisplayObjectConteiner не является динамическим классом. Чот это значит? А то, что DisplayObjectContainer может содержать только те методжы и свойства, которые были даны ему в описании класса.
Я так полагаю, вас не интересуют особые программерские заморочки о правильности подхода :) Потому вот вам 2 варианта:
Код AS3:

this.parent.parent.parent.getChildByName("mc1").alpha=.5;
 
(parent.parent as MovieClip).mc3.alpha = 0.5;


Ar4ibald 10.12.2008 12:26

спасибо,работает теперь. По сравнению с AS2 логика конечно сложноватая :(

mre 10.12.2008 12:30

Цитата:

Сообщение от Ar4ibald (Сообщение 782756)
По сравнению с AS2 логика конечно сложноватая :(

Конечно, если придумывать сложности самому себе, используя parent.parent.parent...

DarkLight 10.12.2008 12:30

Потому что писать во фреймах в AS3 - извращение. И гулять так через все уровни вложенности тем более. Тут проблема не в языке, а в реализации.

Ar4ibald 10.12.2008 12:50

Тоесть самым лучшим выходом реализации будет писать через классы?

etc 10.12.2008 12:52

Точнее в проектировании.

Ar4ibald 10.12.2008 13:42

Когда пробовал писать в классах сталкивался с проблемами передачи значений между классами и непонятными ошибками. Отбило меня от классов, хотя теперь понимаю, что зря.


Часовой пояс GMT +4, время: 22:34.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.