Как загрузить и запустить Flex3 SWF внутри Flex4 или наоборот? - PullRequest
1 голос
/ 19 августа 2010

Мне интересно понять, как запустить SWF-файл Flex-3 внутри SWF-файла Flex-4.

Мое хост-приложение Flex-4 выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <mx:SWFLoader source="SimpleFlex3App.swf" loadForCompatibility="true"/>

</s:Application> 

А это приложение Flex-3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="400">

    <mx:Script>
        <![CDATA[

            private function onClick():void
            {
                labelField.visible = true;
            }   

        ]]>
    </mx:Script>

    <mx:Button label="Click Me" click="onClick();" horizontalCenter="0" verticalCenter="-20"/>
    <mx:Label text="Clicked" visible="false" id="labelField" horizontalCenter="0" verticalCenter="20"/>

</mx:Application>

Я получаю нулевую ссылку на объект, где SWFLoader пытается установить мост. Я предполагаю, что он не получает экземпляр для реализации IMarshalSystemManager.

IMarshalSystemManager(sm.getImplementation("mx.managers::IMarshalSystemManager")).addChildBridge(_swfBridge, this);

Используя SWFLoader и устанавливая loadForCompatibility в true, я следовал документации Adobe :

Я, должно быть, упускаю что-то очень простое, так как и мой хост, и размещенные приложения, в основном, не делают ничего особенного.

Кроме того, возможно ли сделать обратное и запустить SWF на основе Flex-4 внутри Flex-3? По моему мнению, Adobe Doc четко не говорит, да или нет.

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Flex harUI дал правильный ответ здесь, на форуме Adobe .

Спасибо!

0 голосов
/ 19 августа 2010

Это можно сделать, как я построил приложение, которое может загружать SWF-файлы AS2 в SWF-файл Flex 3.

Вам может потребоваться установить для свойства trustContent значение false. Это будет означать, что ваши SWF-файлы находятся в отдельных доменах безопасности, и связь между ними должна осуществляться через общий мост событий, локальное соединение или пользовательские сокеты.

Посмотрите здесь для получения дополнительной информации об этом http://www.pixelbox.net/2009/02/11/sub-application-communication-in-air/

...