Мне интересно понять, как запустить 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 четко не говорит, да или нет.
Спасибо.