原创  Flex中的AactionScript和JavaScript通信的小例子 收藏

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函数则不需要

发表于 @ 2009年03月30日 00:06:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:浅谈FCKeditor2.6基于JavaWeb的配置 | 新一篇:准备抽象出一个父类来定义POJO公共属性的兄弟们注意啦。。。

  • 发表评论
  • 评论内容:
  •  
Copyright © montao
Powered by CSDN Blog