Flex和JavaScript互操作

來源:互聯網
上載者:User

       Flex最終會產生swf檔案以ActiveX的方式部署網頁上(html,jsp,asp,aspx等),由於ActiveX是一個獨立體它並不能直接擷取頁面的元素資料,同樣asp,aspx等服務端代碼也不對它進行操作,這樣Flex的資訊互動就變得很孤立。在Web使用者程式中不同頁的資訊交換是非常重要,通常這些資訊明確下一個頁面應該做什麼;如果Flex得不到這些資訊那麼Flex在實際應用中就大打折扣!於是到網上找一下資料,發現自己的擔心是多餘的。Flex提供相關對象可以靈活地和當前網頁的JavaScript相互進行靈活的調用。那就是說可以通過JavaScript調用Flex內部的方法,同樣在Flex時也可以直接調用頁面上相關的JavaScript方法。

       Flex提供了ExternalInterface對象用於和JavaScript進行互操作。對象分別提供了addCallBack和Cell方法:

 

addCallBack方法

用於註冊一個內部方法用於給JavaScript調用。

function callMe(name:String):String {

    return name+":" + txtUserName.text  ;

}

實際上JavaScript是不能直接調用Flex的內部方法的,那如何使JavaScript能夠調用呢?

首先通過ExternalInterface.addCallback("myFunction", callMe);的方法進行註冊,可以把方法放在Applicaion. Initialize的事件中。

方法第一個參數是:外部調用名稱就是JavaScript調用的方法名稱。

方法第二個參數是:代理執行Flex的內建函式。

JavaScript通過以下方式調用:

function Button1_onclick() {

 alert(document.all('相關ActiveX控制項名稱').myFunction('bbq'));

 }

 

Call方法

用於調用當前頁面裡的JavaScript方法.

<script id="clientEventHandlersJS" language="javascript">

function getuserid()

{

     return 'henry';

}

</script>

在Flex裡可以通過以下方式調用getuserid()方法。

var id:String= ExternalInterface.call("getuserid");

Alert.show(id);


 


Flex在和JavaScript整合這方面做得非常好,你並不需要花費太多的工作就能夠實現和頁面資料元素進行資料交換;同樣也可以調用已經有的ajax功能。

接下來學習的是不同頁面的Flex應用執行個體如何共用資訊。

最後還是老話一句,有興趣的朋友多瞭解一下Flex.

Flex的SDK協助檔案寫得還挺詳細的,基本上能找到使用的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.