Appel d'un flash externe interface AS3 fonction au chargement de la page
J'ai une fonction définie dans AS3 qui va être appelée à partir du côté client via JavaScript. L'AS3 fonctions il suffit d'imprimer une certaine valeur sur l'écran SWF lorsqu'elle est appelée.
Il fonctionne très bien lorsque j'ai mis un gestionnaire d'événement onclick d'un bouton et d'appeler l'AS3 fonction. Cependant, je tiens à appeler cette AS3 fonction dès que le chargement de la page. Je suis à l'aide de jQuery dans le projet et j'ai placé l'appel à l'AS3 fonction à l'intérieur de $(document).ready(), mais qui me donne l'erreur suivante dans FF2 firebug:
getFlashMovie("my_movie_name").my_as3_function n'est pas une fonction
Ensuite, j'ai essayé d'appeler le réglage d'un gestionnaire d'événement onLoad sur l' , mais qui ne fonctionne pas produit le même message d'erreur.
Donc, ma question est, comment dois-je appeler un AS3 fonction automatiquement une fois le chargement de la page? Dans mon projet, j'ai besoin de passer un certain côté client les informations d'initialisation pour le flash une fois le chargement de la page.
OriginalL'auteur | 2009-03-24
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'avoir votre flash appeler une fonction dans la page pour l'informer que le Flash est chargé et initialisé, puis de l'utiliser comme point d'entrée.
Dans le flash:
Dans la page:
OriginalL'auteur Mark Renouf
Si vous utilisez swfObject pour intégrer votre fichier SWF (probablement une bonne idée de toute façon), alors vous pouvez utiliser ses addDomLoadEvent() fonction qui permet de faire quelque chose une fois le fichier SWF est chargé complètement
vous êtes un épargnant de vie!
OriginalL'auteur Scott Evernden
je n'essaie pas d'être un wiseguy ici, mais ne vous tester votre travail sur un serveur?
interface externe, addcallback dose pas de travail sur le système de fichiers local, et, finalement, vous pourriez avoir à ajouter:
flash.système.De sécurité.allowDomain('http://localhost');
si vous êtes en cours d'exécution sur local.
😛
OriginalL'auteur
Le problème est que le Flash de l'objet n'est pas encore initialisé lors de chargement de la page terminé. Il serait probablement beaucoup plus sûr d'effectuer l'initialisation à partir de l'intérieur AS3. Si vous souhaitez passer des valeurs à partir de la page HTML, utilisez flashVars.
OriginalL'auteur David Hanak
J'ai rencontré ce problème moi-même il y a quelques semaines. La solution est assez simple 🙂
Tout d'abord, vous devez mettre dans votre DOM un div
Vous serez aussi à l'aide de la jQuery Minuteries plugin pour le temps de votre chargement. Après cette préparation, les choses vont aller très facile.
Le morceau de code suivant dans votre $(document).prêt();
Plus tard edit: être attentif à ce que la page HTML de charge ne signifie pas que le fichier a été chargé, que se passe juste après le chargement de la page web complète de l'événement. Aussi ma solution est basée sur jQuery bibliothèque javascript.
OriginalL'auteur Bogdan Constantinescu
Réponses par les deux tweakt et Bogdan sont viables. Utilisation tweakt de la méthode si vous avez accès à l'Actionscript. Utilisation Bogdan si vous ne le faites pas. Je cherchais une alternative en plus de l'interrogation (lorsque vous n'avez pas accès à l'Actionscript) mais j'ai pas réussi à trouver un seul jusqu'à présent. Les événements sont mentionnés ici: http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html Mais personne ne semble savoir comment les utiliser.
OriginalL'auteur Jonathan Hawkes
Pour le bien de l'achèvement, vous devez également avoir à utiliser
import flash.external.*;
pour faire fonctionner le tout.OriginalL'auteur nottinhill
Il semble que la collecte de réponses que les réponses les plus proches de cette totalité.
Comme David Hanak dit, l'objet flash ne peut pas être accédé encore parce qu'il est en cours d'initialisation, si je suis en désaccord que nous devons compter sur les flashvars, bien que je les aime.
Tweakt est droit, mais lors de l'appel de la fonction dans le code javascript, qui ont appeler la fonction javascript qui appelle de nouveau à votre swf; de Cette façon, nous savons que le flash est prêt comme il a envoyé le premier appel.
OriginalL'auteur Brian Hodge