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

SunShadow 21.07.2010 08:19

И опять про передачу переменных.
 
Здравствуйте други.
Объясню суть задачи. Есть 3 класса:
  1. Ядро - отвечает за работу всего приложения
  2. СписокЗагрузки - класс отвечающий за запуск и добавление объектов к родительскому элементу
  3. Настройщик - настраивает подгружаемый элемент
В некий момент времени объект на сцене (Объект А) генерирует событие, хочу загрузить список элементов. Событие ловит Ядро(Я) и генерирует список загрузки(СЗ), куда передается в качестве ссылки объект инициировавший событие и собственно сам список настроек для загрузки элементов. Плюс в СЗ передается область Rectangle определяющая границы в пределах которых можно размещать объекты(для первого раза она равна области stage). После загрузки очередного элемента СЗ создает новый объект Настройщик(Н), в который передается ссылка на загруженный объект, параметры его настройки и область размещения. СЗ добавляет объект на сцену и передает управление Н который позиционирует объект внутри области размещения и может эту область изменять (объект по настройкам вполне может ее уменьшить заняв свою площадь). Когда настройка объекта завершена Н уведомляет об этом СЗ и тот обновляет у себя область размещения, чтобы передать эту область следующему объекту.
Самое интересное начинается когда один за загруженных СЗ объектов (назовем его объект Б) тоже уведомляет о том, что ему надо создать свой список загрузки. В этот момент Я получает уведомление о наступлении события и генерирует новый СЗ(2) для загрузки второго списка объектов но уже для Объекта Б. СЗ для Объекта А переходит в режим ожидания пока не будут загружены все объекты по СЗ(2). И вот в этот момент необходимо чтобы область размещения переданная в настройщик объекта Б стала доступна для СЗ(2).
Сами загружаемые объекты информацию о параметрах настройки не хранят, и передавать в них ее не хотелось бы, т.е. создавать свои расширенные классы для клипов и картинок не рассматривается как вариант.
Можно было бы генерировать СЗ непосредственно из Н, но не хочется злоупотреблять вложенными вызовами, боюсь стек может кончиться, на сколько я помню есть ограничение по количеству вложенных вызовов в стеке.
Какие вижу варианты передачи области размещения:
  • При генерации события пока оно поднимается до ядра прехватывать его и задавать через дополнительный параметр область размещения (наподобие KeyCode как в KeyboardEvent)
  • создать хэш таблицу где хранить связь объект - область размещения.
Ядро получив уведомление генерирует СЗ задав область размещения переданную одним из способов.
Оба варианта кажутся какими-то топорными, может кто подскажет нечто более изящное?


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

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