學(xué)習(xí)筆記 如何利用Flex調(diào)用JavaScript代碼
本文和大家重點(diǎn)學(xué)習(xí)一下Flex調(diào)用JavaScript代碼,在Flex調(diào)用JavaScript最簡(jiǎn)單的方法是使用ExternalInterface(),可以使用此API調(diào)用任意JavaScript,傳遞參數(shù),獲得返回值。
Flex調(diào)用JavaScript代碼
在Flex開(kāi)發(fā)中有時(shí)候需要調(diào)用JS代碼,例如關(guān)閉瀏覽器,或者是在某種情況下打開(kāi)瀏覽器提示框等等。一般情況下Flex用ExternalInterface類的call()函數(shù)來(lái)調(diào)用JS代碼,其中call()函數(shù)的參數(shù)就是String類型的JS代碼段。
你可以調(diào)用Html頁(yè)面中的JavaScript,通過(guò)與JavaScript的交互,可以改變Style,調(diào)用遠(yuǎn)程方法。還可以將數(shù)據(jù)傳遞給Html頁(yè)面,處理后再返回給Flex,完成這樣的功能主要有兩種方法:ExternalInterface()和navigateToUrl()。
在Flex調(diào)用JavaScript最簡(jiǎn)單的方法是使用ExternalInterface(),可以使用此API調(diào)用任意JavaScript,傳遞參數(shù),獲得返回值,如果調(diào)用失敗,F(xiàn)lex拋出一個(gè)異常。ExternalInterface封裝了對(duì)瀏覽器支持的檢查,可以用available屬性來(lái)查看。ExternalInterface的使用非常簡(jiǎn)單,語(yǔ)法如下:
- flash.external.ExternalInterface.call(function_name:String[,arg1,...]):Object;
參數(shù)function_name是要調(diào)用的JavaScript的函數(shù)名,后面的參數(shù)是JavaScript需要的參數(shù)。
As代碼
- ExternalInterface.call(FUNCTION_USEREXIT);
- ExternalInterface.addCallback("checkExit",checkExit);
- privatestaticvarFUNCTION_USEREXIT:String="document.insertScript=function()"+"
- {"+"window.onbeforeunload=function()"+"{"+"varflexObj=MarineDataEdit.checkExit();
- "+"if(flexObj!=\"\")"+"{"+"returnflexObj;"+"}else{"+"return;"+"}"+"}"+"}";
- publicfunctioncheckExit():String{varuserExitStr:String="你如果現(xiàn)在離開(kāi),則您的所有信息將失效!";
- returnuserExitStr;
- ExternalInterface.call(FUNCTION_USEREXIT);
- ExternalInterface.addCallback("checkExit",
- checkExit);privatestaticvarFUNCTION_USEREXIT:String="document.insertScript=function()"+"
- {"+"window.onbeforeunload=function()"+"{"+"varflexObj=MarineDataEdit.checkExit();
- "+"if(flexObj!=\"\")"+"{"+"returnflexObj;"+"}else{"+"return;"+"}"+"}"+"}";
- publicfunctioncheckExit():String{varuserExitStr:String="你如果現(xiàn)在離開(kāi),則您的所有信息將失效!";
- returnuserExitStr;
其中ExternalInterface類的addCallback函數(shù)是調(diào)用AS端的返回值。
【編輯推薦】
- Flex與JavaScript交互中如何用Flex調(diào)用JavaScript
- Flex跨域訪問(wèn)沙箱問(wèn)題解決方案
- 技術(shù)前沿 看Flex客戶端緩存技術(shù)如何使用
- 解析Flex全屏模式設(shè)置方法
- Flex內(nèi)存泄露解決方法和內(nèi)存釋放優(yōu)化原則