Qu'est-ce que j'ai:
Exemple d'exportation de fonctions dans SWF: P>
function __flash__arrayToXML(obj) { var s = "<array>"; for (var i=0; i<obj.length; i++) { s += "<property id=\"" + i + "\">" + __flash__toXML(obj[i]) + "</property>"; } return s+"</array>"; } function __flash__argumentsToXML(obj,index) { var s = "<arguments>"; for (var i=index; i<obj.length; i++) { s += __flash__toXML(obj[i]); } return s+"</arguments>"; } function __flash__objectToXML(obj) { var s = "<object>"; for (var prop in obj) { s += "<property id=\"" + prop + "\">" + __flash__toXML(obj[prop]) + "</property>"; } return s+"</object>"; } function __flash__escapeXML(s) { return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); } function __flash__toXML(value) { var type = typeof(value); if (type == "string") { return "<string>" + __flash__escapeXML(value) + "</string>"; } else if (type == "undefined") { return "<undefined/>"; } else if (type == "number") { return "<number>" + value + "</number>"; } else if (value == null) { return "<null/>"; } else if (type == "boolean") { return value ? "<true/>" : "<false/>"; } else if (value instanceof Date) { return "<date>" + value.getTime() + "</date>"; } else if (value instanceof Array) { return __flash__arrayToXML(value); } else if (type == "object") { return __flash__objectToXML(value); } else { return "<null/>"; //??? } } function __flash__addCallback(instance, name) { instance[name] = function () { return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>")); } } function __flash__removeCallback(instance, name) { instance[name] = null; }
3 Réponses :
Cela pourrait-il être à faire avec le fait que vous créez une étiquette d'intégration au lieu d'une étiquette d'objet? Ie utilise traditionnellement les étiquettes d'objet pour incorporer le contenu flash P>
Voir la technologie Adobe non pour la discussion: http://kb2.adobe.com /cps/415/tn_4150.html P>
Je ne suis pas sûr si je comprends votre question correctement. Mais je pense qu'il vous manque quelques éléments:
1) Votre étiquette d'intégration nécessite un attribut de nom. Nommez-le «Newflashmovie» pour le code suivant: P> 2) Vous devez appeler la fonction "Isactive" différemment à l'aide d'une fonction externe. D'abord ajouter cette fonction p> alors vous pouvez appeler la fonction comme celle-ci p> de mon expérience, ce "thismovie" est essentiel pour combler les appels IE-Flash. Ceci est également documenté dans le Documentation externeInterface p> 3) Je vous recommande également d'utiliser SWFObject au lieu de créer votre propre "Intégrer " objet. p> J'espère que ces aide. p> p> thismovie ("Newflashmovie"). Isactive (); Code> P>
Pour une raison quelconque, j'avais maintenant ceci pour travailler: x.Callfunction ('
Devrait-il être navigator.appname.indexof ("Microsoft") == -1?
J'ai constaté que, pour IE, appelez JavaScript à partir d'ActionScript, j'ai besoin de fournir un attribut "ID" à l'objet fort> objet fort>. La manière dont la manipulation externeinterface.call (...) est d'appeler une méthode sur l'objet sans attribut d'identifiant sur votre étiquette d'objet, cela réduit à p> qui tente d'appeler Setreturnvalue sur un null objet. p> Notez que l'attribut "ID" n'est pas requis pour les autres navigateurs, mais ne fait pas vraiment mal non plus. P> Quelque chose de similaire peut se produire dans votre cas: peut-être un " Nom "Attribut sur le Intégrer Strong> peut aider. P> P>
J'ai utilisé une interface externe dans IE - difficile à dire quoi que ce soit sans voir le code.
L'anwser avec exemple source pourrait simplement créer un élément HTML incorporé via des fonctions DOM en JavaScript, puis prouver que l'interface externe peut être appelée. Mon expérience est que c'est-à-dire sans relier le JavaScript pour flash pont pour une raison quelconque. Peut-être que je devrais poster un bogue sur Microsoft Connect? :)
J'ai vu dans le passé que vous pouvez vous retrouver avec une condition de course sur la configuration de l'interface externe, je ne sais pas si IE8 le fait pire, la fonction SetCallback n'a pas été appelée au moment où le script interagit avec l'objet DOM.