2010-12-07 40 views
2

Je ne peux pas appeler une fonction javascript à partir de flash, lorsque l'objet flash est ajouté dans une structure OOP en javascript. En bref, le code:ExternalInterface appel de flash pour fonctionner dans OOP javascript

en flash:

if (ExternalInterface.available) { 
    ExternalInterface.call("flashMessages", "ready"); 
} 

code javascript:

function fbTeaserClass(){ 

    function loadVideoObject(){ 
     ... 
     swfobject.embedSWF(sitebase+'/FocusVideo.swf', 'myContent'+uniqueid, '100%', '100%', '9.0.0', 'expressInstall.swf', flashvars, params, attributes, outputStatus); 
    } 

    this.flashMessages=function(message){ 
     alert('called'); 
    } 

} 

flash se charge, mais l'appel à la fonction javascript est pas reçu. Quelqu'un a des idées ce qui ne va pas?

Répondre

1

Très probablement un problème de portée, votre fonction est à l'intérieur d'un objet, essayez d'appeler "fbTeaserClass.flashMessage", vous devrez peut-être également initialiser le flash à un autre niveau.

+0

Vous avez raison. Une fonction appelée flashMessages() {..} est appelée (placée en dehors de l'objet), uniquement dans FireFox (les autres navigateurs me donnent l'alerte). Est-ce un problème commun de FireFox? – Bert

+0

Si vous changez le code pour faire autre chose qu'un 'alert()', changez quelque chose sur la page par exemple, cela fonctionne-t-il dans FireFox? – Orbling

+0

FireFox a quelques problèmes avec cela, qu'avez-vous dans votre variable 'attributes'? Si vous pouviez ajouter dans tout le lancement de l'appel 'SWFObject' qui serait pratique. – Orbling