2013-03-08 1 views
0

J'essaie de charger un fichier SWF dans une application simple à des fins de test. Le SWF a été compilé à l'aide SWFTools-0.9.1 en utilisant la commande suivante:FlexPaper - Impossible de charger les fichiers SWF distants dans l'application AIR

/usr/bin/pdf2swf 10993.PDF -o 10993.SWF -f -T 9 

Les charges SWF fines dans un navigateur.

En utilisant le code Flex suivant avec Flex SDK 4.6:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         xmlns:flexpaper="com.devaldi.controls.flexpaper.*" 
         creationComplete="onCreationComplete()"> 
    <fx:Script> 
     <![CDATA[ 
      import flash.utils.setTimeout; 

      private function onCreationComplete():void 
      { 
       swf.SwfFile = 'http://my/domain/10993.SWF'; 
      } 
     ]]> 
    </fx:Script> 
    <flexpaper:FlexPaperViewer width="100%" height="100%" id="swf"/> 
</s:WindowedApplication> 

Le fichier crossdomain.xml est:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*"/> 
</cross-domain-policy> 

Le résultat final est:

SecurityError: Error #3207: Application-sandbox content cannot access this feature. 

Toute idée pourquoi cela se passe-t-il?

+0

D'où vient l'erreur? Avez-vous une trace de pile complète? Ou cette erreur est-elle attrapée à l'intérieur du FlexPaperViewer d'une manière ou d'une autre? – JeffryHouser

+0

L'erreur est générée par ADL.exe et affichée dans Flash Builder, mais uniquement lors de l'exécution en mode débogage. – Reado

Répondre

0

Je ne pouvais pas charger un SWF externe dans AIR en raison des restrictions de sécurité. Selon Adobe, il n'y a pas de solution de rechange pour cela, sauf pour charger le fichier SWF externe via une page HTML externe en utilisant le composant HTML.

0

Ceci est probablement dû au fait que le fichier SWF chargé contient un appel à Security.allowDomain() qui renvoie cette erreur lorsqu'il est appelé dans une application AIR. Essayez de générer à nouveau le fichier SWF sans l'option -t.

Questions connexes