2010-08-26 2 views
0

Suite à mon post précédent ... et merci beaucoup pour les réponses .... C'est la situation réelle que j'essaie de résoudre. Juste besoin d'appeler un swf de javascript pour déplacer le swf sur un autre laps de temps.problèmes se déplaçant au cadre swf avec javascript

AS3

Import flash.external.ExternalInterface; 

function moveOn (frame:int) : void 
{ 
gotoAndPlay (frame); 
} 
ExternalInterface.addCallback("myjsFunction", moveOn); 

JS

<script language="JavaScript"> 
function sendtoSwf (frame){ 
MyMovie.myjsFunction(frame); 
} 
</script> 
... 
<object id="MyMovie"...> 
... 
<param name="allowScriptAccess" value="always" /> 
.... 
<embed name="MyMovie".../> 
</object> 

HTML JS déclencheur

<a href onclick=”javascript : sendtoSwf(25);”> click here </a> 

Si quelqu'un pourrait-il clarifier les choses, puisque je veux seulement déclencher swf de js, dois-je peut-être pas besoin de la ligne ... addCallback (...)? Est-ce que ce devrait être juste un ... Appel (...)? Je n'ai pas encore assez parlé de l'idée de l'interface interne. Dans mon html cliquez sur le déclencheur Im essayant de passer une valeur entière qui est l'image réelle que je veux que le swf se déplace, je ne suis pas sûr si le déclencheur devrait lier à la fonction "sendtoSwf" ou "myjsFunction" ... ai-je besoin d'une référence dans js au nom réel de la fonction as3 qui déplace le cadre? (ie moveOn) Toute clarifacation serait grandement appréciée. Merci d'avance. Ed

Répondre

0

Vous avez absolument besoin de la fonction addCallback, mais vous devez également vérifier que Javascript est prêt à communiquer avec Actionscript. Jetez un oeil à la docs, l'exemple est assez détaillé et devrait vous donner l'information dont vous avez besoin.

Vérifiez la classe externe Interface http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/

+0

Merci Patrick j'ai réussi à le faire fonctionner. Ajout d'un code pour vérifier le type de navigateur et retravaillé le code. – Edbro

1

Pour toute personne intéressée c'est ce qui a fonctionné:

<script type="text/javascript"> 
//checking which browser used 
function getFlashMovieObject(movieName){ 
if (window.document[movieName]){ 
    return window.document[movieName]; 
} 
if (navigator.appName.indexOf("Microsoft Internet")==-1){ 
    if (document.embeds && document.embeds[movieName]) 
     return document.embeds[movieName]; 
} 
else{ 
    return document.getElementById(movieName); 
} 
} 
//code that sends frame no to flash 
function sendtoSwf(numb){ 
var flashMovie=getFlashMovieObject("myFlashMovie"); 
flashMovie.sendToFlash(numb); 
} 
</script> 

Et le script d'action

import flash.external.ExternalInterface; 
ExternalInterface.addCallback("sendtoFlash", getFromJavaScript); 
function getFromJavaScript(frame:int):void { 
gotoAndPlay(frame); 
} 
Questions connexes