2010-08-18 57 views
1

我有興趣瞭解如何在Flex-4 SWF中運行Flex-3 SWF。如何在Flex4中加載和運行Flex3 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 Doc沒有明確地說是或否。

謝謝。

回答

0

當我構建一個可以將AS2 swfs加載到Flex 3 SWF的應用程序時,可以這樣做。

您可能需要將trustContent屬性設置爲false。這將意味着你的swfs處於不同的安全域,並且兩者之間的通信需要通過共享事件橋,本地連接或自定義套接字進行。

看看這裏對這個http://www.pixelbox.net/2009/02/11/sub-application-communication-in-air/

+0

robmcm,感謝您的想法,但這並沒有幫助。我同時將我的問題簡化爲我能想到的最簡單的情況,並相應地更新了我的原始帖子。 – Stefan 2010-08-19 15:21:12

+0

很高興你把它分類! – robmcm 2010-08-21 08:17:58