在学习Flex的过程中你可能会遇到Flex与JavaScript交互的问题,这里和大家分享一下,主要包括Flex调用JavaScript中的函数和JavaScript调用Flex中的函数两大部分内容。
Flex与JavaScript交互
Flex 与JavaScript 交互,主要依靠Flex的ExternalInterface,其提供了addCallBack和call方法。
◆先来看Flex调用JavaScript中的函数
FlexConnectJavaScript.mxml
复制
<?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ importflash.external.*; publicfunctioninvokeJavaScript():void { lblResult.text=ExternalInterface.call("returnTheName","huangxi"; } ]]> </mx:Script> <mx:Buttonidmx:Buttonid="btnConnect"label="调用JavaScript"click="invokeJavaScript()"x="229"y="204"/> <mx:Labelidmx:Labelid="lblResult"text="test"x="205"y="99"width="150"height="80"/> </mx:Application> FlexConnectJavaScript.html中<Script>加入 functionreturnTheName(a) { return"HUANGXI"; } ////////////////////////
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
小结
1.ExternalInterface.call("returnTheName","huangxi");其中***个参数与JavaScript中的函数相同,第二个参数为传递参数。
◆再来看JavaScript调用Flex中的函数
JavaScriptConnectFlex.mxml
复制
<?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"creationComplete="initApp()"> <mx:Script> <![CDATA[ importflash.external.ExternalInterface; publicfunctionadd():int { vari:int; varsum:int=0; for(i=1;i<=100;i++) { sum+=i; } returnsum; } publicfunctioninitApp():void { ExternalInterface.addCallback("addTo100",add); } ]]> </mx:Script> </mx:Application> JavaScriptConnectFlex.html中加入 <buttononclickbuttononclick="addMethod()">计算</button> ... 中加入 functionaddMethod() { vars=JavaScriptConnectFlex.addTo100(); alert(s); } ///////////////
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
小结
1.ExternalInterface.addCallback("addTo100",add);定义JavaScript可以调用的方法
2.可见JavaScript要调用Flex函数,Flex要声明一下;而Flex调用JavaScript函数则不需要
【编辑推荐】