2009-04-10 5 views
7

J'essaie d'exécuter une fonction jQuery sur ma page HTML depuis AS3.Comment puis-je exécuter une fonction jQuery en utilisant AS3

Ceci est ma fonction jQuery:

function loadImage(imageNumber) 
    { 
    imageURL = '<img src="images/image' + imageNumber + '.jpg">'; 
    $("#imageBox").html(imageURL); 
    } 

Voici les paramètres de mon fichier flash dans la page HTML:

<param name="allowScriptAccess" value="always" /> 
<param name="bgcolor" value="#ffffff" />  
<embed src="links.swf" quality="high" bgcolor="#ffffff" width="320" height="242" name="links" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /> 

et enfin ... voici dans mon script AS3. fichier SWF:

function gotoImage1(e:MouseEvent):void { 
    var jscommand:String = "loadImage(1);" 
    var link:URLRequest = new URLRequest("javascript:" + jscommand + ""); 
    navigateToURL(link, '_self'); 
} 

Merci d'avance pour prendre le temps de regarder et toute aide est massivement appréciée.

Kindest Regards.Tom

Répondre

6

Vous pouvez utiliser ExternalInterface à la place:

if (ExternalInterface.available) { 
    ExternalInterface.call('function(){ alert("test"); }'); 
} 

Documentation: http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html

+1

Merci pour la réponse rapide, bien que j'ai eu l'alerte ("test") à montrer, je ne peux pas faire fonctionner ma fonction. La fonction en haut de ma page HTML s'appelle "loadImage". Je passe également une variable à cette fonction. if (ExternalInterface.available) { ExternalInterface.call ('loadImage (1);'); } – Tisch

+0

ne pas s'inquiéter. J'ai réussi à le faire fonctionner. Merci beaucoup pour la réponse. Muchos apprécié :) – Tisch

1

La solution finale était:

function gotoImage2(e:MouseEvent):void 
{ 
    if(ExternalInterface.available) 
    { 
     ExternalInterface.call('function(){ loadImage(2); }'); 
    } 
} 

Juste au cas où quelqu'un voulait voir comment ça s'est terminé ...

+0

Pourquoi n'appelez-vous pas directement votre méthode javascript au lieu d'utiliser une fonction anonyme? 'ExternalInterface.call ('loadImage', 2);' – duTr

Questions connexes