ExternalinInterface ne fonctionne pas dans IE
-
19-09-2019 - |
Question
J'essaie d'appeler une action dans un objet flash du javascript:
comme:
function testExternalConnection(str:String):Void {
_root.debug.htmlText = "testExternalConnection ok";
}
ExternalInterface.addCallback("testExternalConnection", this, testExternalConnection);
JS:
var movie = getFlashMovie("ap1_mod_hidden")
movie.testExternalConnection();
avec
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
J'inclus mon flash en utilisant swfObject:
<span id="ap1_mod_hidden"></span>
<script type="text/javascript">
// Setting up the flash player
var flashvars = {
mp3Path: "stop",
artistName : "",
trackName : ""
};
var params = {
codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
src: '/flash/ap1_mod.swf',
quality: 'high',
pluginspage: 'http://www.macromedia.com/go/getflashplayer',
scale: 'showall',
devicefont: 'false',
bgcolor: '#999999',
name: 'ap1_mod',
menu: 'true',
id: 'mod',
allowFullScreen: 'false',
allowScriptAccess:'always', //sameDomain
movie: '/flash/ap1_mod.swf',
wmode: "transparent",
allowfullscreen: "true"
};
swfobject.embedSWF("/flash/ap1_mod.swf", "ap1_mod_hidden", "300", "300", "9.0.0", false, flashvars, params);
</script>
Rien de fou ici. Donc, ce code fonctionne bien dans tout mais pas dans Internet Explorer (quelle surprise: ). Il obtient correctement l'objet de film, mais il n'est pas en mesure d'appeler la fonction ExternalinInterface. Cela dit que la propriété n'est pas définie.
J'ai regardé sur Google et donc sans succès ... toute aide serait appréciée!
La solution
Je crois que vous voulez utiliser l'ID, pas la div que vous ajoutez aussi le SWF:
function getFlashMovie(movieName) {
return swfobject.getObjectById("mod");
}
Puisque vous définissez "mod" comme ID.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow