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