Мысли о ResourceManager. Как сделать его удобным?
Всем привет!
Озадачен созданием универсального ResourceManager`а. В моём представлении, что я хочу: я хочу свободно создавать экземпляры интересующего меня класса, вне зависимости от положения этого класса в пространстве. Что я имею ввиду? Я имею ввиду, что захотев создать класс "GFXMenu", содержащий графику из меню, я должен буду написать одну строчку. Например, такую: Код AS3:
Код AS3:
Код AS3:
Вобщем, мои мысли: ResourceManager — это НЕ статичный класс, которых можно создать очень много экземпляров. (Каждому передается ApplicationDomain, или он создаёт новый). На вход подается XML подобного содержания: Код:
<source name="mainMenu" type="swf" definitionName="GFXMainMenu" file="gfx/main.swf" preload="1" /> Код:
trace(new resourceManager.getDefinition("mainMenu")()); //GFXMainMenu Суть в том, что тем самым я смогу обеспечивать достаточно серьезную модульность: можно будет разбивать приложение на 40 swf по 50 кб каждое, а можно будет сделать одну swf на 2 мб без вмешательств в сам код, будет правиться только входной XML файл. Единственное нарушение этой идиллии, это необходимости перезагрузки данных. Я думаю сделать его похожим на что-то вроде этого: Код AS3:
Ещё в XML`е в конце стоит атрибут "preload". Если он равен 1, тогда этот ресурс должен быть загружен сразу же, после создания менеджера (это прелоадинг, по сути). Помимо этого этот менеджер будет способен грузить вообще любые ресурсы: звуки, XML, картинки и прочее, по той же схеме. Что вы думаете об этом? |
Я думаю, что колбеки не тру, и надо писать свой евент (с полем alias или полями alias & type)
Насчет xml - не гибко, парсер xml должен висеть отдельно и формировать из него очередь По поводу статичности и аппДоменов - выглядит неплохо. Ну и плюс ко всему - я бы сделал несколько классов "потоков загрузки" с общим интерфейсом и работал бы через этот интерфейс |
Цитата:
Цитата:
Цитата:
|
Цитата:
(просто можно затрахаться - проверял - записывая какая картинка откуда пришла вручную) Цитата:
|
Цитата:
Цитата:
Цитата:
xml -> URLLoader swf, jpg, png -> Loader something -> ILoader |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Про 40 листенеров - не понял |
Цитата:
Цитата:
|
Цитата:
Цитата:
Мы ведь обычно знаем, что: - все начинающееся на UI лежит в ui.swf - все начинающееся на Animation лежит в animation.swf Делаем себе сугубо проектно-зависимый класс, в котором хардкодим наше соглашение Код AS3:
Код AS3:
При первом подходе можно возвращать не url, а сразу ресурс, типизированный соответственно загружаемым данным (у которого потом вызывать load() и на который подписывать колбеки) |
Цитата:
|
Часовой пояс GMT +4, время: 01:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.