2010-08-18 4 views
1

Je suis intéressé à comprendre comment faire fonctionner un SWF Flex-3 à l'intérieur d'un SWF Flex-4.Comment charger et exécuter un fichier SWF Flex3 à l'intérieur de Flex4 ou vice versa?

Mon Flex-4 application hôte ressemble à ceci:

<?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> 

Et c'est l'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> 

je reçois une référence d'objet nul où le SWFLoader tente de mettre en place le pont. Je suppose qu'il n'obtient pas une instance pour l'implémentation IMarshalSystemManager.

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

En utilisant le SWFLoader et la mise loadForCompatibility à vrai que je suivais le adobe documentation:

Je dois manquer sur quelque chose de très simple à la fois, mon hôte et applications hébergées, au fond ne font rien spécial.

De plus, est-il possible de faire le contraire et d'exécuter un SWF basé sur Flex-4 à l'intérieur d'un fichier Flex-3? À mon avis, l'adobe doc ne dit pas clairement oui ou non.

Merci.

Répondre

0

Il est possible de faire comme j'ai construit une application qui peut charger AS2 swfs dans un SWF Flex 3.

Vous devrez peut-être définir la propriété trustContent sur false. Cela signifie que les swfs se trouvent dans des domaines de sécurité distincts et que la communication entre les deux doit se faire via un pont d'événements partagé, une connexion locale ou des sockets personnalisées.

Jetez un oeil ici pour plus d'informations sur ce http://www.pixelbox.net/2009/02/11/sub-application-communication-in-air/

+0

robmcm, merci pour vos pensées mais cela n'a pas aidé. J'ai simplifié mon problème en attendant le cas le plus simple que je pouvais penser et mis à jour mon poste original en conséquence. – Stefan

+0

Heureux que vous l'ayez trié! – robmcm

Questions connexes