我有兴趣了解如何在Flex-4 SWF中运行Flex-3 SWF。
我的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 documentation
我肯定错过了一些非常简单的东西,比如我的主机和托管应用程序,基本上没有什么特别的东西。
此外,有没有可能做相反的事情,在Flex-3中运行基于Flex-4的SWF?在我看来,adobe文档并没有明确地说是或不是。
谢谢。
发布于 2010-08-20 01:49:01
Flex harUI提供了正确的答案here at the adobe forum。
谢谢!
发布于 2010-08-19 13:48:55
这是可能的,因为我构建了一个应用程序,可以加载AS2 SWF到Flex3SWF。
您可能需要将trustContent属性设置为false。这意味着你的swfs在不同的安全域中,两者之间的通信需要通过共享事件桥、本地连接或自定义套接字进行。
有关此http://www.pixelbox.net/2009/02/11/sub-application-communication-in-air/的更多信息,请查看此处
https://stackoverflow.com/questions/3517682
复制相似问题