Thursday, April 28, 2011

How can I run a jQuery function using AS3

I am trying to run a jQuery function on my HTML page from AS3.

This is my jQuery function:

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

Here are the settings of my flash file in the HTML page:

<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" />

and finally... here is the AS3 script in my .swf file:

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

Thankyou in advance for taking the time to look and any help is massively appreciated.

Kindest Regards.Tom

From stackoverflow
  • You can use ExternalInterface instead.

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

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

    Tisch : Thankyou for the fast response, although I got the alert("test") to show, I can not get my function to run. The function at the top of my HTML page is called "loadImage". I'm also passing a variable to this function. if(ExternalInterface.available){ ExternalInterface.call('loadImage(1);'); }
    Tisch : not to worry. ive got it working. Thankyou very much for the answer. Muchos appreciated :)
  • The final solution was:

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

    Just in case anyone wanted to see how it ended...

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.