2013-03-02 1 views
2

Je crée une application Air Desktop. J'ai compilé un fichier SWF à partir de FLA, en utilisant Flash Player 10, ActionScript 3.0.Utilisation de SWFLoader avec Flex

J'essaye maintenant de tirer le SWF dans mon application de bureau en utilisant mxml à travers FlashDevelop. Cependant, chaque fois que j'exécute mon application, mon mxml s'exécute correctement, mais le fichier SWF n'est pas importé comme je l'attendais; Je reçois un écran blanc vide, bien que les dimensions semblent correctes.

Voici mon code MXML que j'ai changé la valeur par défaut généré par FlashDevelop:

<?xml version="1.0"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 

    <mx:SWFLoader width="950" height="500" source="..\..\..\bin\Gameseed.swf" /> 

</mx:Application> 

Code d'origine (tel qu'il est généré par FlashDevelop):

<?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/halo"> 

    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 


</s:Application> 

je l'ai lu quelque part que SWFLoader est seulement destiné à être utilisé pour des interactions et animations mineures avec l'utilisateur; mon SWF est juste une image d'arrière-plan avec un bouton, donc je ne sais pas si ce serait un problème à l'avenir quand je commence l'ajout de clips vidéo tels que plusieurs écrans ...

Merci

+0

Etes-vous sûr que le répertoire source est correct pour Gameseed.swf? Où est Gameseed.swf par rapport au répertoire d'installation de l'application principale? (Ou si vous déboguez, le répertoire bin-debug). Cela fonctionne-t-il si vous utilisez un chemin de fichier complet? Cela fonctionne-t-il si vous utilisez une URL de fichier comme 'file: // C: /something/something/bin/Gameseed.swf'? – JeffryHouser

+0

Mon fichier Main.mxml se trouve sous mon dossier src et mon fichier SWF sous bin. J'ai essayé d'utiliser le chemin absolu, ainsi que l'URL du fichier, mais j'ai le même problème. – caubry

+1

Vous ne voulez pas utiliser un chemin relatif à votre dossier source; vous voulez utiliser un chemin relatif à l'endroit où vous avez compilé la sortie. Dans Flash Builder c'est le dossier bin-debug; Je ne suis pas sûr de savoir comment FlashDevelop le fait. Vous avez probablement besoin de faire: source = "gameseed.swf" – JeffryHouser

Répondre

0

J'ai trouvé que mon problème était lié à mon fichier SWF. Ce que j'ai, c'est avoir un clip sur ma scène qui contient plusieurs couches de clips supplémentaires, car je pensais pouvoir y accéder via leur nom d'occurrence. Lorsque je supprime cette approche imbriquée, le compilateur semble être heureux. En termes de meilleures pratiques, devrais-je avoir un fichier SWF distinct pour chaque "page" de mon application, ou construire l'application entière en flex? Merci à @ www.Flextras.com et @danii!

1

Vous êtes probablement obtenir une Sandbox Security Violation, utilisez le débogueur Flash Player pour vérifier le code d'erreur et le message. Quelques problèmes communs sont:

  • Comme suggéré @flextras, votre application ne trouve pas le fichier SWF

  • Vous ne compilez soit l'application ou le fichier SWF avec les paramètres du compilateur correct pour fichier local l'accès ou les paramètres du sandbox AIR. Par exemple, vérifiez Security sandbox violation on Air file et flex: loading local flash file pour plus d'informations et quelques corrections possibles.

Espérons que cela aide!

Questions connexes