Comment capturer un déclencheur d’événement quand une animation flash est chargée avec succès?

J’utilise actuellement jQuery, ainsi que swfObject pour intégrer de manière dynamic le film swf dans ma page Web.

J’ai actuellement un problème pour intégrer le lecteur de musique d’immem dans ma page Web, car leur code d’intégration n’a pas d’écran de chargement. Ainsi, lorsque je remplace l’élément à l’aide de swfObject, cette zone est généralement vide. Dans le pire des cas, cela signifie que l’utilisateur ne saura pas que le morceau intégré est en cours de chargement.

Donc, j’essaie de trouver le moyen de lier un événement après le chargement de ce flash. Comme mon plan placerait une image avec un énorme z-index sur le dessus et utiliserait ce déclencheur pour masquer l’image. Je pense avoir essayé d’utiliser $('#embed').load(function(){ ... }); sans chance.

Quelqu’un a-t-il une solution pour cela? Je me demande simplement si cela est possible, étant donné que je ne veux pas pirater le flash et essayer d’append «loader» au fichier flash.

Quelques remarques supplémentaires: pour que ce soit plus clair, je souhaite intégrer le lecteur de musique d’imeem à ma page Web. Donc, je n’ai vraiment aucun contrôle sur le fichier flash, c’est-à-dire que je ne peux pas créer un fichier flash tout seul.

Généralement, la chose la plus facile à faire est de simplement utiliser pour attendre que vos ressources externes aient fini de se charger avant d'appeler votre gestionnaire.

Cependant, si vous utilisez swfObject pour append un plugin intégré de manière dynamic, le navigateur déclenchera la charge onload pour le corps exclusif de votre animation flash (il ne sait rien de votre plugin).

Voir http://blog.deconcept.com/swfobject/forum/discussion/271/javascript-onload-event-does-not-reflect-page-load-using-swfobject/ pour une discussion similaire à la vôtre. Je suppose que vous ne pouvez pas faire ce que vous voulez sans modifier le swf original de quelque manière que ce soit.

Vous pouvez le faire depuis le film flash. Cependant, vous devrez alors contrôler le film (ce que vous n’avez peut-être pas).

Notez que vous aurez besoin de wmode = transparent si vous souhaitez masquer le flash avec une image ou des éléments HTML.

Le problème avec la solution mentionnée ci-dessus consistant à utiliser window.load () est qu’il n’est pas utile si votre swf principal ne pèse que 1 kb, mais qu’il n’affiche rien en réalité (il s’agit simplement d’un conteneur qui reçoit du contenu supplémentaire, ce qui est souvent le cas. cas dans les fichiers flash.

Ce que je ferais, c’est d’utiliser la classe ExternalInterface d’Actionscript qui permet à votre lecteur flash de communiquer avec les fonctions javascript disponibles dans le fichier html contenant le fichier flash. Vous pouvez demander à votre fichier flash d’appeler une fonction javascript qui déclenche une fonction qui indique à votre script de traitement javascript que le flash est prêt. Ce qui est bien avec cela, c’est que vous obtenez le niveau exact de contrôle dont vous avez besoin sur ce qui doit être chargé dans le fichier flash lorsque le javascript prend le relais.

Voir cela pour plus d’informations sur l’utilisation de ExternalInterface: http://blog.circlecube.com/2008/02/01/actionscript-javascript-communication/