Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Конструткоры классов (общение друг с другом) (http://www.flasher.ru/forum/showthread.php?t=74051)

ir73 10.01.2006 18:52

Конструткоры классов (общение друг с другом)
 
Вот интересно, как кто справляется с такой задачей. Есть мувик, который экстендится классом. И есть другой мув, который экстендится другим классом. Оба на сцене лежат. И вот у одного мува в конструкторе функция, которая что то делает с содержимым второго мувика (например меняет размер вложенного мува). Но дело в том, что когда конструктор выполняется, то все вложенные хлементы мува = undefined. Решить проблему может например onEnterFrame. Который запустит функцию, как только необходимый элемент будет !udenfined. Но имхо способ не самый лучший. Есть что изящнее?

Reijii 10.01.2006 18:58

может я неправильно понял.. но разме можно изменять что-то , у чего-то, если его еще нe существует ? а на onEnterFrame ты просто дожидаешся пока оно засуществует.. может стоит тогда "инициализировать" изменения из второго мувика, уже при его ? там флаг в первый передать како-то.. или инициализировать в начале второй а потом первый... :confused:

ir73 10.01.2006 19:16

ну вот я и хотел узнать, как узнать "готовность" мува, помимо onenterframe

Antares 10.01.2006 19:19

Если конструктор того, к чему ты обращаешься, отработал, "по науке" должна быть и проведена инициализация параметров. Поэтому создав один объект (к которому происходит обращение) в коде до вызывающего объекта, все должно быть доступно.

Это раз. Два -- создавать объект прямо в конструкторе вызывающего, но я бы не назвал это хорошим подходом, зависимости усиливаются.

Antares 10.01.2006 19:21

Цитата:

Сообщение от ir73
ну вот я и хотел узнать, как узнать "готовность" мува, помимо onenterframe

Одна из рекомендуемых практик гласит -- "если отработал конструктор -- объект готов к работе как минимум с неким стандартным набором свойств".
Если это не так -- значит, архитектура системы сделана криво

ir73 10.01.2006 19:33

Если конструктор того, к чему ты обращаешься, отработал, "по науке" должна быть и проведена инициализация параметров. Поэтому создав один объект (к которому происходит обращение) в коде до вызывающего объекта, все должно быть доступно.
-------

вот и ответ. спасибо.

silin 10.01.2006 21:18

извиняюсь, конечно, но я не сумел представить ситуацию, когда из конструктора одного класса надо подправлять что-то в конструкторе другого (или я ничего не понял..)
ir73, не интригуй, раскажи, что за фокусы..

Antares 11.01.2006 01:24

Силин, не в конструкторе поправить. А просто обратиться к объекту, к его членам.

ir73 26.01.2006 23:59

вот наконец нашел пример, который мог бы подойти в эту тему. Имеем 2 мувика которые экстендятся разными классами Mov1Class и Mov2Class. Оба эти класса прописаны в линкадже. Оба мувика лежат на сцене. В конструкторе первого мувика присваивается переменная someVar = 1. А во втором мувике эта переменная должна прочитаться myVar = _parent.muv1.someVar; И естественно, мы получаем undefined потому что на момент присвония мувик не инициализировался и для конструктора первого как бы не существует (все верно?). Так как же быть в этом случае и передать переменную?

silin 27.01.2006 01:10

пример бредовый: зная класс muv1, стало быть и muv1.someVar зачем читать это значение у экземпляра ?
чего добиваемся не понятно..


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

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