Flex調用JavaScript代碼
在Flex開發中有時候需要調用JS代碼,例如關閉浏覽器,或者是在某種情況下打開浏覽器提示框等等。一般情況下Flex用ExternalInterface類的call()函數來調用JS代碼,其中call()函數的參數就是String類型的JS代碼段。
你可以調用Html頁面中的JavaScript,通過與JavaScript的交互,可以改變Style,調用遠程方法。還可以將數據傳遞給Html頁面,處理後再返回給Flex,完成這樣的功能主要有兩種方法:ExternalInterface()和navigateToUrl()。
在Flex調用JavaScript最簡單的方法是使用ExternalInterface(),可以使用此API調用任意JavaScript,傳遞參數,獲得返回值,如果調用失敗,Flex拋出一個異常。ExternalInterface封裝了對浏覽器支持的檢查,可以用available屬性來查看。ExternalInterface的使用非常簡單,語法如下:
參數function_name是要調用的JavaScript的函數名,後面的參數是JavaScript需要的參數。
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="你如果現在離開,則您的所有信息將失效!";
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="你如果現在離開,則您的所有信息將失效!";
returnuserExitStr;
其中ExternalInterface類的addCallback函數是調用AS端的返回值。