Javascript与Flex AS3的交互

时间:2023-08-09 14:24:26

网上看了很多的关于JS和AS的教程,写的都玄乎乎,让一帮新人摸不着头脑。

鉴于此,打算自己写一个简化的教程。

重点:

ExternalInterface.addCallback("js_func",as_func);

ExternalInterface.call("js_func");

第一句话的意思是:将Flex方面的AS函数(as_func)暴露出去,使用的时候通过 Flash对象.js_func

进行访问。

第二句话的意思是:在Flex方面,调用Flash对象所在页面(html)中的JS方法(js_func)

简单示例如下:

AS:

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

             xmlns:s="library://ns.adobe.com/flex/spark"

             xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="makeOut()">

<fx:Script>

        <![CDATA[

public function makeOut():void{

                ExternalInterface.addCallback("asDo",asDo);

                ExternalInterface.call("jsDo");

            }

            public function asDo(){

                Alert.show("AS 干活啦!");

}

]]>

</fx:Script>

</s:Application>

 

JS:

<script type="text/javascript">

function jsDo(){

alert("JS先干活");

var obj=getFlashObject();

obj. asDo();

}

</script>