Форум 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)
-   -   Динамические библиотеки AS2 классов во Flash (http://www.flasher.ru/forum/showthread.php?t=65892)

Mokus 22.06.2005 13:38

Динамически-подключаемые библиотеки AS2 классов во Flash
 
Написанное ниже - всего навсего мое понимание технологии, я могу во многом ошибатся (наверняка так оно и есть ;) )

Насколько мне известно для обратной совместимости со старым стилем написания кода во Флеше существуют фактически две обектные модели: старая - основаная на прототипах и новая - на классах. Причем мне, как программисту на 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

Цитата:

Сообщение от Nirth
как вариант можно подгружать 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#


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

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