2010-05-05 17 views
0

J'ai un SWFLoader en mxml de mon application flexible.Charger des fichiers SWF distants en flex

<mx:SWFLoader id="swfPreview" 
    width="100%" height="90%" y="20" visible="false"/> 

Maintenant sur un clic de bouton, j'exécute le code suivant dans le script d'action.

swfPreview.addEventListener(Event.COMPLETE,loadComplete); 
swfPreview.scaleContent = true; 
swfPreview.load(url); 

Où « url » est l'URL pour un cadeau swf sur Internet (ce domaine peut être identiques ou différents, je fais face à des problèmes dans les deux cas)

Maintenant, loadComplete, je fais la suivant:

private function loadComplete(event:Event):void 
{ 
    Alert.show("Load complete"); 
    swfPreview.removeEventListener(Event.COMPLETE,loadComplete); 
    swfPreview.visible = true; 
} 

Je reçois le message d'alerte (qui est le LoadComplete est appelé) mais ne reçoivent aucune swf chargé, pas en mesure de voir quoi que ce soit. Quel peut être le problème, ai-je oublié quelque chose ou un problème de sécurité? J'ai également essayé le contrôle d'image pour charger le swf. En outre, les swf sont des fichiers pdf convertis en swf, cela peut-il être un problème de fréquences d'images différentes entre flash et flex? Toute aide sera appréciée.

Merci

+0

Avez-vous essayé avec un swf différent pour voir si cela fonctionne comme prévu? – quoo

+0

En fait, j'ai essayé de placer un swf dans un domaine auquel j'ai accès et j'ai pu charger ce swf. J'ai également essayé d'afficher la propriété de contenu du swf dans l'autre cas et je vois l'objet AVM1movie dans le contenu. Mais étonnamment, alors que j'ai débogué et quitté le débogueur pendant un certain temps, j'ai vu un message de "securitydomain essayé d'accéder au contexte incompatible", je pense que c'est une sorte de problème de sécurité, devrait placer un fichier crossdomain. – Gaurav

+0

J'ai utilisé un LoaderContext pour le chargeur SWF et j'ai téléchargé l'application flexible, puis j'ai pu charger le swf, hurrah !! Mais ma joie ne durait pas longtemps J'ai vu le swf chargé clignoter (certaines images dans le swf chargé clignaient et aucun texte n'était visible). Est-ce lié à différentes fréquences d'images? – Gaurav

Répondre

0

Je ne ai jamais travaillé avec SWFLoader spécifiquement, mais il semble que vous n'êtes pas ajoutez l'objet chargé à l'écran. Si SWFLoader se comporte au moins comme flash.display.Loader, vous devrez obtenir l'objet sur Event.COMPLETE et l'ajouter à l'affichage. Quelque chose comme:

loader = new Loader(); 
var req:URLRequest = new URLRequest("http://example.com/your.swf"); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(req); 

private function onComplete(e:Event):void { 
    addChild(e.target.loader.content); 
} 

Pour un exemple complet utilisation d'un chargeur, vous pouvez vérifier l'API lecteur Vimeo, qui charge leur SWF de lecteur vidéo à partir de leur site dans votre application:

http://www.vimeo.com/api/docs/moogaloop