首頁  >  文章  >  web前端  >  調用JavaScipt或被JavaScript調用

調用JavaScipt或被JavaScript調用

高洛峰
高洛峰原創
2016-11-25 13:37:36900瀏覽

一、在JavaScript中呼叫Flex方法
在Flex中可以用ExternalInterface來呼叫Flex的方法,途徑是透過在Flex應用可呼叫方法清單中新增指定的公用方法。在Flex應用中透過呼叫addCallback()可以把一個方法加入到此列表中。 addCallback將一個ActionScript的方法註冊為一個JavaScript和VBScript可以呼叫的方法。
addCallback()函數的定義如下:
addCallback(function_name:String, closure:Function):void
function_name參數就是Html頁面中腳本呼叫的方法名稱。 closure參數是要呼叫的本地方法,這個參數可以是一個方法也可以是物件實例。

舉例:
<script><br>    import flash.external.*;<br>    public function myFunc():Number {  ():void {<br>        ExternalInterface.addCallback(" myFlexFunction",myFunc);<br>    }<br></script>
那麼在Html頁面中,先獲得SWF物件的引用,也就是用宣告的Swf的Id屬性,比如說是MyFlexApp 。然後就可以用以下方式呼叫Flex中的方法。



 

二、在Flex中呼叫JavaScript
你可以呼叫Html頁面中的JavaScript,透過與JavaScript的交互,可以改變Style,呼叫遠端方法。也可以將資料傳遞給Html頁面,處理後再回傳給Flex,完成這樣的功能主要有兩種方法:ExternalInterface()和navigateToUrl()。
在Flex中呼叫JavaScript最簡單的方法是使用ExternalInterface(),可以使用此API呼叫任意JavaScript,傳遞參數,獲得回傳值,如果呼叫失敗,Flex拋出一個例外。

ExternalInterface封裝了對瀏覽器支援的檢查,可以用available屬性來查看。

ExternalInterface的使用非常簡單,語法如下:

flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;

參數function_name是要呼叫的JavaScript的函數名,後面的參數是JavaScript所需的參數。
舉例說明如何呼叫JavaScript函數
Flex應用中,加入以下方法:
<script><br><?xml version="1.0" encoding="iso-8859-1"?><br><application xmlns :mx="http://www.adobe.com/2006/mxml"><br>    <script><br>        import flash.external.*;<br>           var f:String = " changeDocumentTitle";<br>            var m:String = ExternalInterface.call(f,"New Title");<br>       :Script><br>    <button label="Change Document Title" click="callWrapper()"></button><br></script>
Html頁面中有下列函數定義:




陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn