Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Executing Javascript file from AS 3.0

I am running a small jquery code to my web page:

<!-- myjs.js -->
<script type="text/javascript">
$(document).ready(function() {  
$("body").append('<div id="ajaxBusy" class="ajaxBusy"></div>');
</script>

as you can see i am adding a div at my html body with specific class and id name.

How is it possible to execute this .js file throught actionscript 3.0? I mean to make a flash movie and call this file, or is it possible to execute inline javascript code through AS 3.0?

I found the code bellow but i cant make it work:

import flash.external.ExternalInterface;

var someVarInAS : String = 'foo';
var someOtherVarInAS : int = 10;
var jsXML : XML = 
<script type="text/javascript">
    var someVarInJS = '{$("body").append('<div id="ajaxBusy" class="ajaxBusy"></div>');}';
    var someOtherVarInJS = '{$('#ajaxBusy).fadeIn();}';
    <![CDATA[       
        alert( 'this comes from flash: ' + someVarInJS + ', ' + someOtherVarInJS );
    ]]>
</script>;

ExternalInterface.call( "function js_" + ( new Date().getTime() ) + "(){ " + jsXML + " }" );
like image 592
Irene T. Avatar asked Jan 24 '26 02:01

Irene T.


1 Answers

I use this for loading JS files dynamically from AS3 and it works pretty well. Could be modified to run normal js rather than load another file:

var script:String = "" + 
    "var newscript = document.createElement('script');" +
    "newscript.type = 'text/javascript';" +
    "newscript.async = true;" +
    "newscript.src = 'SomeJavascriptFile.js';" +
    "(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);";

if ( ExternalInterface.available ) {
    ExternalInterface.call("eval", script);
}
like image 103
Matt MacLean Avatar answered Jan 25 '26 15:01

Matt MacLean



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!