répondre à ma propre question: https://sourceforge.net/forum/message.php?msg_id=5929756
- Définition d'une fonction Javascript qui doit être invoquée si chargé Flash.
- Appelez cette méthode à partir du début de votre fichier Flash.
- Utilisez une minuterie pour détecter si le rappel n'est jamais appelé.
- Préférez invoquer des fonctions Javascript de Flash plutôt que d'invoquer des fonctions Flash de Javascript. Dans tous les cas, vous ne pouvez pas appeler une fonction qui n'a pas encore été chargée. Il est beaucoup plus facile de garantir que le navigateur a fini de charger votre fonction Javascript avant de l'appeler depuis Flash, que de garantir que Flash a fini de charger votre fonction Flash avant de l'invoquer depuis Javascript.
Voici un exemple:
- J'utilise swfobject pour intégrer Flash.
- J'utilise FlashVars pour indiquer à Flash quelle fonction Javascript appeler. Ceci est utile s'il y a plusieurs objets Flash sur la page.
flash
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
if (ExternalInterface.available)
{
var onLoaded:String = params["onLoaded"];
if (onLoaded != null)
ExternalInterface.call(onLoaded, true);
}
Javascript
var flashLoaded = false;
var flashTimer;
function onFlashLoaded()
{
flashLoaded = true;
clearTimeout(flashTimer);
}
function onFlashTimeout()
{
if (!isFlashLoaded)
{
// Remove the Flash object in case it is partially loaded
$("#videoFeed").empty();
$("#videoFeed").append('<div id="flashObject"></div>');
alert("Failed to load video player");
}
clearTimeout(flashTimer);
}
function connectToVideo()
{
var flashvars = {};
flashvars.onLoaded = "onFlashLoaded";
var params = {};
params.menu = false;
var attributes = {};
isFlashLoaded = false;
flashTimer = setTimeout("onFlashTimeout()", 5000);
swfobject.embedSWF("flash/VideoFeed.swf", "flashObject", "800", "600", "11", "expressInstall.swf", flashvars, params, attributes);
}
brillant! Cela aiderait beaucoup aujourd'hui: D –