2011-03-31 4 views
1

J'ai un fichier SWF qui collecte les commentaires des utilisateurs sur un site Web. Les questions posées sont rassemblées en XML, en utilisant une URL fournie via flashvars intégrée dans la page. Malheureusement, cela semble avoir cassé dans la dernière version de mon SWF.Impossible d'extraire les flashvars dans le fichier SWF

Voici comment j'intégrez l'objet:

<script src="swfobject.js"></script> 
    <script type="text/javascript"> 
     swfobject.embedSWF("http://localhost/mysite/q.swf", "flashcontent", "900", "360", "9.0.0", "http://localhost/mysite/expressInstall.swf", { loadurl: escape("http://localhost/mysite/q.php?q=13") }, {}, {}); 
    </script> 
    </head> 
    <body> 
    <div id="flashcontent"> 

    </div> 
    </body> 

Je tente de tirer le flashvar LoadURL comme ceci:

this.loaderInfo.addEventListener(Event.COMPLETE, function(e:Event) { 
            init(); 
           }); 
function init() 
{ 
    *snip* 
    loadurl = unescape((loaderInfo.parameters.loadurl)); 
} 

En utilisant ExternalInterface.call() pour appeler console.log dans les sorties du navigateur null , mais dans une version précédente (où ce code est resté inchangé) il fonctionne et produit l'URL comme je l'attendrais. Je peux basculer entre eux voir le travail sur le plus tôt, puis mettre à jour vers le plus récent et il sort à nouveau nul. Le seul changement dans cette version plus récente de l'actif est que j'ai ajouté un symbole et un peu de code pour l'ajouter à la scène après le chargement du XML - mais cela n'a en rien changé le code URL du code HTML de la page J'utilise Flash CS5 et c'est un projet ActionScript 3.0. Est-ce que quelqu'un peut suggérer où je me trompe? J'ai passé des années à me tirer les cheveux au-dessus de celui-ci, donc toute aide serait grandement appréciée. J'ai lu quelque part que cela pourrait être fait via ExternalInterface - serait-il plus approprié pour un scénario comme celui-ci? Est-ce une alternative viable si, pour une raison quelconque, je n'arrive pas à faire fonctionner correctement?

Merci!

+1

Il y avait une version swfobject qui cassait flashvars dans certains navigateurs, alors assurez-vous de mettre à jour le le dernier ... à part ça, je ne vois rien de bizarre. – Cay

+0

@Cay - J'ai vérifié et mis à jour jusqu'au dernier soir, merci pour l'entrée. Dans le but de le faire fonctionner pour mon client, je viens d'utiliser ExternalInterface pour appeler une fonction JS qui retourne l'URL. Un peu un hack, mais ça va faire. – mdm

+1

peut-être un problème de portée? avez-vous essayé d'utiliser "this" loadurl = unescape ((this.loaderInfo.parameters.loadurl)); –

Répondre

0

La solution de contournement ici était d'utiliser éventuellement ExternalInterface.call. Malheureusement, je ne pouvais pas comprendre pourquoi les flashvars n'étaient pas transmis correctement au SWF, malgré beaucoup de problèmes avec HTML, SWFObject, etc.

0

Si vous utilisiez ExternalInterface.call() pour appeler console.log et cela a fonctionné, mais maintenant retourne null, alors peut-être l'emplacement de console.log a déplacé?

+0

Non, j'ai l'impression que cela provoquerait une exception dans mon code ActionScript et serait perceptible. Strictement parlant, j'appelais 'ExternalInterface.call (" console.log "," URL: "+ loadurl); et * cela * indiquait" URL: null ". Merci pour la suggestion cependant. – mdm

Questions connexes