Flex中的AactionScript和JavaScript互调的小例子

来源:互联网 发布:百度 mysql 编辑:程序博客网 时间:2024/05/01 11:21

actionscript调用javascript中的方法
FlexConnectJavaScript.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
     <![CDATA[
     import flash.external.*;
     public function invokeJavaScript():void
     {
       lblResult.text=ExternalInterface.call("returnTheName","huangxi";//第一个是所要调用的方法,第二个为参数,后面要跟其他参数直接写就OK了。
     }
     ]]>
    </mx:Script>
<mx:Button id="btnConnect" label="调用JavaScript" click="invokeJavaScript()" x="229" y="204"/>
<mx:Label id="lblResult" text="test" x="205" y="99" width="150" height="80"/>
</mx:Application>

FlexConnectJavaScript.html中<Script>加入
function returnTheName(a)
{
       return "HUANGXI";
}
////////////////////////
小结
1.ExternalInterface.call("returnTheName","huangxi");其中第一个参数与JavaScript中的函数相同,第二个参数为传递参数






再来看JavaScript调用flex中的函数
JavaScriptConnectFlex.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
public function add():int
{
var i:int;
var sum:int=0;
for(i=1;i<=100;i++)
{
    sum+=i;
}
return sum;
}
public function initApp():void
{
ExternalInterface.addCallback("addTo100",add); //初始化时添加一个js调用的方法声明,第一参数为javascript所调用的方法明,第二个参数为所要执行的actionscript方法。
}
]]>
</mx:Script>
</mx:Application>

JavaScriptConnectFlex.html中加入
<button onclick="addMethod()">计算</button>
...
中加入
        function addMethod()
{
var s=JavaScriptConnectFlex.addTo100();
                 alert(s);
}
///////////////
小结
1.ExternalInterface.addCallback("addTo100",add);定义JavaScript可以调用的方法
2.可见JavaScript要调用Flex函数,Flex要声明一下;而Flex调用JavaScript函数则不需要  

原创粉丝点击