вторник, 10 марта 2009 г.

Женим Flex и pure Flash средствами PureMVC

Очень часто приходится сталкиваться с такой задачей: 
Необходимо организовать взаимодействие flex-приложения и подгружаемого в него flash-ролика, изготовленного  без использования FlexFramework (так называемый pure Flash).
Решение подобной, на первый взгляд, простой задачи породило огромное количество извращений, предлагаю очередное.
Для решения задачки нам понадобится PureMVC. Я использую PureMVC Multicore. Взять здесь.
Для тех, кто не знает что ето такое читать:
на русском
В картинках (чудеса, скоро будет книжка раскраска PureMVC для самых маленьких :))

"Чисто MVC", 

"Архитектура и ключевые фигуры фреймворка PureMVC",

 "Фасад (Façade) — ядро и лицо фреймворка PureMVC", 

"Как устроены Модель, Вид и Управление во фреймворке PureMVC ",

PureMVC MultiCore Modular Pipes Application - a better way in!

Dynamic Mortgage Demo (чудесный пример организации модульного приложения с помощью PureMVC, естественно - более сложная задача, чем предлагаю я)

Пример загрузки внешних ресурсов

Building a Flash site using PureMVC

Renju, The Game 

Начитавшись всего этого, осмелюсь предложить Вашему вниманию следующее решение:

Суть метода основывается на "кросскриптовости" фреймвопрка PureMVC и сводится к тому, что после загрузки внешний ролик прописывает свой медиатор в список объектов основного приложения и с его помощью может реагировать на нотификации основного приложения, а так же может сам быть источником этих нотификаций.

Предлагаю Вашему вниманию небольшой пример , ссылка на исходный код, как это обычно бывает, в контекстном меню (жмем правой кнопкой мыши)...

Удачи!

Комментарии: 3:

В 10 марта 2009 г. в 13:49 , Blogger Unknown сказал(а)...

Совмещать пуре-флэш и флекс через пуреМВЦ красиво.

А разрабатывать пуре-флэш обособленно от флекс в рамках одного приложения оправдано, если пуре-флэш делает другой человек не знакомый с флекс?
Не, конечно модульность и разделение задач налицо. Но мне кажется, если проект разрабатывается на флекс, пуре-флэш лучше использовать только для производства ресурсов - графики и анимации. А весь код иметь в рамках флекс - в виде модулей и компонентов.

Флекс-компонент, это некая инстанция (черный ящик), имеющая набор параметров, методов и генерящая ряд событий и выдающая некий результат. Он не должен подчиняться законам того или иного фреймворка, используемого в том или ином приложении. ПуреМВЦ (и остальные) - это уже надстройка над компонентами, координирующая их и устраивающая работу приложения.
То есть, соединяя флэш и флекс через пуреМВЦ мы не можем получить компонент - получаем приложение. А настолько ли это хорошо вписывается в идеологию флекс?

 
В 11 марта 2009 г. в 02:43 , Blogger Константин Kohl сказал(а)...

>А разрабатывать пуре-флэш обособленно от флекс в рамках одного приложения оправдано, если пуре-флэш делает другой человек.

Не только, предположим Ваш "компонент" содержит большое количество векторной анимации, писать такой ролик FlexBuilder_ом - тяжкое извращение и в то же время его необходимо интегрировать в Flex приложение...
>Флекс-компонент, это некая инстанция (черный ящик)...
Никакой таинственности. Это всего лишь далекий потомок Object...

>То есть, соединяя флэш и флекс через пуреМВЦ мы не можем получить компонент - получаем приложение.
К чему и стремились :)
P.S. Flex такой же флэшовый врэймворк, как и PureMVC...

 
В 1 мая 2009 г. в 20:33 , Blogger foreground сказал(а)...

Спасибо большое за статью. Очень вовремя! Флекс у меня только в будущем. Пока пишу на чистом AS3+Flash. Думаю использовать пюре для модульности. Все-таки лучше когда за тебя придумано как взаимодейстовать кусочкам.
Я не профи конечно, но думаю Racer прав насчет того, что пуре не придумывали для взаимодействия флекса с флэшом. Во флеше есть поддержка flex sdk, поэтому во избежание лишних наворотов надо юзать флексовый фрэймворк.

 

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница