2009-01-10 8 views
1

J'utilise actuellement jQuery, ainsi que swfObject pour intégrer dynamiquement le film swf dans ma page Web.Comment capturer un déclencheur d'événement lors du chargement réussi d'un film Flash?

J'ai actuellement un problème sur l'intégration de lecteur de musique immem dans ma page Web, car leur code d'intégration n'a pas d'écran de chargement. Donc, quand je remplace l'élément en utilisant swfObject, cette zone sera généralement vide. Dans le pire des cas, cela signifie que l'utilisateur ne saura pas que la chanson intégrée est en cours de chargement. Donc, j'essaie de trouver le moyen de lier un événement après que le flash ait été chargé. Depuis mon plan serait de placer l'image avec z-index énorme sur le dessus et utiliser ce déclencheur pour cacher l'image. Je pense que j'ai essayé d'utiliser $('#embed').load(function(){ ... });, sans chance.

Est-ce que quelqu'un a une solution pour cela? Je me demande simplement si c'est possible, puisque je ne veux pas faire de piratage avec le flash et essayer d'ajouter 'loader' au fichier flash.

Un peu plus note: Pour le rendre plus clair, je veux intégrer le lecteur de musique d'imeem dans 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 par moi-même.

Répondre

0

Vous pouvez le faire depuis l'animation Flash. Cependant, vous devrez avoir le contrôle sur le film (que vous ne pouvez pas avoir).

+0

Oui, je ne dispose pas d'un contrôle sur le fichier flash, car il est l'un de Embed immem. – sikachu

2

Généralement, la solution la plus simple consiste à utiliser le '<body onload="..."' qui attend le chargement de vos ressources externes avant d'appeler votre gestionnaire. Cependant, si vous utilisez swfObject pour ajouter dynamiquement un plugin intégré, le navigateur lancera l'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. C'est ma meilleure estimation que vous ne pouvez pas faire ce que vous voulez sans modifier le swf original dans une certaine mode.

0

Note, vous aurez besoin wmode = transparent si vous avez l'intention d'obscurcir le flash avec une image ou html choses

0

problème avec la solution mentionnée ci-dessus de l'utilisation window.load() est-il est pas utile si votre Le swf principal ne pèse que 1 Ko, mais il n'affiche en fait rien (c'est juste un conteneur qui charge du contenu additionnel, ce qui est souvent le cas dans les fichiers flash.)

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

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

Questions connexes