PDA

Просмотр полной версии : Динамические библиотеки AS2 классов во Flash


Mokus
22.06.2005, 13:38
Написанное ниже - всего навсего мое понимание технологии, я могу во многом ошибатся (наверняка так оно и есть ;) )

Насколько мне известно для обратной совместимости со старым стилем написания кода во Флеше существуют фактически две обектные модели: старая - основаная на прототипах и новая - на классах. Причем мне, как программисту на C# намного удобнне работать со второй. НО! Обектная модель Action Script 2 существует только до момента компиляции, после нее (компиляции) - обекты AS2 преобразуються в обекты AS1. Когда мы создаем фильм не используя шары - ето нас абсолютно не тревожыт. Аналогично когда мы создаем компонент в swc - туда запихиваются декларации всех класов с атрибутом intrinsic - ето дает возможность в дизайн тайме использовать модель AS2.

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

Суть вопроса. Как сделать скомпилированую библиотеку класов для флеш? Или как сделать swc - шару? Или как в шару запихнуть декларации классов?

Сейчас я ету проблему решаю так: Создаю шару куда включаю один пустой клип, которому задаю класс-фабрику, которая создает все остальные классы, которые мне нужны и которые я хочу в ету шару включить (паттерн Abstract Factory). Я подозреваю, что ето далеко не наилучшая практика и хотел бы узнать, как ето сделать НОРМАЛЬНО.

Nirth
22.06.2005, 13:52
как вариант можно подгружать dll на лету.
http://osflash.org/doku.php?id=using_a_swf_as_a_dll

Mokus
22.06.2005, 14:25
как вариант можно подгружать dll на лету.
http://osflash.org/doku.php?id=using_a_swf_as_a_dll
Неплохо, но если чесно мой способ все - таки проще. Абстрактную фабрику намного проще юзать чем лоадер из етого примера. Но там я нашел ответ на свой вопрос - я не догадался использовать intrinsic класы, а ответ был на поверхности. Единственный минус - при изменении интерфейса класса - прийдется менять все intrinsic описания даного класса. А вообще все складненько получается

Nirth
22.06.2005, 14:34
а где можно прочесть про данный паттерн?

Mokus
22.06.2005, 15:11
http://dotsite.ru - там есть описания всех основных патернов с UML диаграмами и кодом на C#