Bonjour,
Je souhaite appeler une fonction Flash depuis le Javascript d'une page WEB. Cette page WEB contient une animation flash qui représente un menu pour naviguer à travers le site WEB.
Je souhaite que lorsque le pointeur quitte l'animation le menu contenu dans l'animation flash disparaisse. Le code permettant de faire disparaitre le menu est contenu dans l'action script du flash dans la fonction "mouseOutOfAnim". Je voudrais appeler cette fonction mouseOutOfAnim sur l'événement onMouseOut de mon objet flash. Pour ce faire j'utilise ExternalInterface mais cela ne fonctionne pas ; avez-vous une idée pourquoi?
Code de l'objet dans la page HTML :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="700" height="100" id="menu" align="middle" onMouseOut="callExternalInterface();" > <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="menu.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#515151" /><embed src="menu.swf" quality="high" bgcolor="#515151" width="700" height="100" name="menu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object>
Code javascript dans la page HTML :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <script> function callExternalInterface() { thisMovie("menu").hideMenu(); } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } </script>
Code dans l'action script :
Code actionscript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 import flash.external.*; var ret = ExternalInterface.addCallback("hideMenu", null, mouseOutOfAnim); function mouseOutOfAnim() { clearInterval(interval); nextScene(); play(); }
Merci d'avance.
PS : je n'utilise pas l'événement onRollOut d'un calque de fond en flash car autrement lorsque le curseur est au dessus d'un bouton dans l'animation flash la fonction onRollOut est appelée ce que je ne souhaite pas.
Partager