Форум 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=93359)

Ромастый 19.03.2007 17:30

Задержка инициализации.
 
Уже долгое время раздражает и портит настроение одна вещь.
Не смертельная, но неприятная.
Есть класс
Код:

class OuterMC extends MovieClip {
    private var inner_mc:InnerMC;
    ....
}

Экземпляр которого содержит внутри себя наследника другого класса:
Код:

class InnerMC extends MovieClip {
    ....
}

На инициализацию inner_mc порой уходит порядочное время - от секунды и выше. Таким образом, обращаясь в OuterMC к методам или свойствам inner_mc до его инициализации мы получаем фигу.

Выход - сообщить в конструкторе класса InnerMC о том, что инициализация произошла.
Но добавить OuterMC в качестве слушателя inner_mc до инициализации мы не можем, а прямое обращение по ссылке к OuterMC из конструктора InnerMC - "Слышь, эта, я тут короче пришел в себя, со мной можно работать" - это как-то криво... :rolleyes:

Какие есть еще варианты в такой ситуации? :umnik2:

etc 19.03.2007 17:38

http://groups.google.com/group/ruFla...onLoad&rnum=2#

Ромастый 19.03.2007 18:48

Да, спасиб... Читано не раз.
Проблема стара как мир, или вернее - как mx2004.

Раньше я размещал ссылку на содержащий класс, мирясь с кривизной данного подхода. Но чаша терпения переполнена :)))

Вопрос - как кто это обходит?

etc 19.03.2007 18:56

Там описаны все варианты.
http://groups.google.com/group/ruFla...7dabe80cb21553

Ромастый 20.03.2007 16:43

Не все. Например вложенный клип можно сделать вещателем из внешнего.

Код:

import mx.events.EventDispatcher;
//
class OuterMC extends MovieClip {
    private var inner_mc:InnerMC;
   
    function OuterMC() {
          EventDispatcher.initialize(inner_mc);
          inner_mc.addEventListener("someEvent", this);
    }

    function someEvent(evt_obj) {
          ...
    }
}

А в конструкторе класса InnerMC вещать "Я очухался"
Такая конструкция вроде работает, но тоже выглядит кривовато.

Еще варианты?

etc 20.03.2007 16:53

Так, слушай, собери нерабочий пример, мне проще решить проблему на практике, нежели в теории.

Ромастый 20.03.2007 17:09

Как таковой проблемы нет. Вернее есть, как видим, но она решается кучей способов.
Вопрос был из серии теоретических. Или риторических (в народе еще называемых дурацкими :rolleyes: )

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

etc 20.03.2007 17:13

Я обычно откладываю до следующего кадра все.


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

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