繁体   English   中英

如何在Flex4内部加载和运行Flex3 SWF,反之亦然?

[英]How to load and run a Flex3 SWF inside Flex4 or vice versa?

我有兴趣了解如何在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文档

我一定错过了一些非常简单的东西,因为我的主机和托管应用程序基本上都没有做任何特别的事情。

此外,是否有可能做相反的事情并在Flex-3内运行基于Flex-4的SWF? 我认为adobe文档并未明确表示是或否。

谢谢。

Flex harUI 在adobe论坛上提供了正确的答案。

谢谢!

在构建可以将AS2 swfs加载到Flex 3 SWF中的应用程序时,就可以这样做。

您可能需要将trustContent属性设置为false。 这意味着您的swfs位于单独的安全域中,并且两者之间的通信将需要通过共享事件桥,本地连接或自定义套接字进行。

在此处查看有关此http://www.pixelbox.net/2009/02/11/sub-application-communication-in-air/的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM