隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          Adobe? Flex?應(yīng)用程序是事件驅(qū)動的。當(dāng)用戶與界面組件交互時事件會通知程序員,
          當(dāng)一個組件的外觀或者生命周期發(fā)生重要改變,比如創(chuàng)建或者銷毀一個容器,或改 變一個容器的大小的時候,事件也會通知程序員。

          當(dāng)一個組件的實(shí)例分派一個事件時,你為那個事件注冊的監(jiān)聽器對象就會被通知。 你可以在 ActionScript 中定義事件監(jiān)聽器(或者叫做事件處理器)來處理事件。你 既可以在 MXML 聲明中為一個組件注冊事件監(jiān)聽器,也可以在 ActionScript 中實(shí)現(xiàn) 相同的功能。

          接收事件通知有三種方式:
          ??在 MXML 中注冊一個事件處理器
          ??在 MXML 中創(chuàng)建一個內(nèi)聯(lián)(inline)的事件處理器
          ??通過 ActionScript 注冊一個事件處理器

          在 MXML 中注冊一個事件處理器
          第一個,而且是最廣泛地被用來接收事件通知的方法就是在 MXML 中定義一個事件處 理器,當(dāng)事件發(fā)生時就調(diào)用它。
          在這個例子中,你為一個 Button 控件的 click(點(diǎn)擊)事件定義了一個事件處理器。 當(dāng)用戶點(diǎn)擊這個 Button 控件時,事件處理器會把 Label 控件的 text 屬性設(shè)成? "Hello,World!"。

          示例

          <?xml? version="1.0"? encoding="utf-8"?>
          <mx:Application
          xmlns:mx="
          http://www.adobe.com/2006/mxml "
          width="300"? height="200"
          horizontalAlign="center"? verticalAlign="middle"
          viewSourceURL="src/HandlingEventsEventHandler/index.html">
          <mx:Script>
          <![CDATA[
          import? flash.events.MouseEvent;
          private? function? clickHandler? (? event:MouseEvent? ):void
          {
          myLabel.text? =? "Hello,World!";
          }?
          ]]>?
          </mx:Script>
          <mx:Panel
          title="My? Application"? horizontalAlign="center"
          paddingTop="10"? paddingBottom="10"? paddingLeft="10"
          paddingRight="10"? >
          <mx:Label? id="myLabel"? width="180"? fontWeight="bold"
          fontSize="24"/>?
          <mx:Button? id="myButton"? label="Click? Me!"?
          click="clickHandler(event);"? />?
          </mx:Panel>
          </mx:Application>

          運(yùn)行結(jié)果圖示:

          譯注:由于文檔中無法嵌入 SWF 文件,代碼運(yùn)行結(jié)果請查看原文中相應(yīng)的部分。

          ?在 MXML 中創(chuàng)建一個內(nèi)聯(lián)(inline)的事件處理器

          ?有時響應(yīng)事件的最簡單的方法就是完全在一個組件的 MXML 聲明中定義事件處理器。 這就是使用一個內(nèi)聯(lián)(inline)的事件處理器。

          ?在下面的例子中,你設(shè)定了<mx:Button>標(biāo)簽的click屬性,所以它可以直接設(shè)定 Label控件的text屬性,而不需要調(diào)用一個事件處理器方法。


          提示:使用內(nèi)聯(lián)事件處理器可能比較快而且代碼較少,但是它也可以影響代碼的易讀性,可維護(hù)性和可擴(kuò)展性。一個好的經(jīng)驗(yàn)法則就是不要在內(nèi)聯(lián)事件處理器中包含 一條語句以上的 ActionScript。如果你必須包含更復(fù)雜的邏輯,就把它放到一個 ActionScript helper 方法(即第一種方法)或者一個 ActionScript 事件處理器(即 第三種方法)中。

          示例
          <?xml? version="1.0"? encoding="utf-8"?>
          <mx:Application
          xmlns:mx="http://www.adobe.com/2006/mxml"
          viewSourceURL="src/HandlingEventsInlineMethod/index.html"
          horizontalAlign="center"? verticalAlign="middle"
          width="300"? height="200">
          <mx:Panel?
          title="My? Application"? horizontalAlign="center"?
          paddingTop="10"? paddingBottom="10"? paddingLeft="10"
          paddingRight="10">?
          <mx:Label? id="myLabel"? width="180"? fontWeight="bold"?
          fontSize="24"/>?
          <mx:Button? id="myButton"? label="Click? Me!"? click="myLabel.text? =
          'Hello,? World!'"? />?
          </mx:Panel>
          </mx:Application>
          運(yùn)行結(jié)果圖示:

          通過 ActionScript 注冊一個事件監(jiān)聽器
          你也可以通過使用 ActionScript 注冊一個事件處理器來響應(yīng)事件。 在這個例子中,使用ActionScript中的addEventHandler()? 方法注冊了一個事件監(jiān)
          聽器。這個addEventHandler()方法被放在了用來處理Application容器的
          creationComplete事件的事件處理器中。
          提示:程序開始運(yùn)行的時候,在Application的外觀和它的子組件初始化完畢之后, Application的creationComplete事件就會發(fā)生。creationComplete事件的處理器提 供了一個很方便的地方來放置注冊事件監(jiān)聽器的ActionScript代碼。

          示例
          <?xml? version="1.0"? encoding="utf-8"?>
          <mx:Application
          xmlns:mx="http://www.adobe.com/2006/mxml"
          viewSourceURL="src/HandlingEventsActionScript/index.html"
          horizontalAlign="center"? verticalAlign="middle"
          width="300"? height="200"
          creationComplete="creationCompleteHandler(event);">
          <mx:Script>?
          <![CDATA[?
          import? flash.events.MouseEvent;
          import? mx.events.FlexEvent;?
          private? function
          creationCompleteHandler(event:FlexEvent):void
          ?
          {

          clickHandler);
          }
          ?//? Listen? for? the? click? event? on? the? Button? control
          myButton.addEventListener? (MouseEvent.CLICK,
          ?private? function? clickHandler? (? event:Event? ):void
          {
          myLabel.text? =? "Hello,? World!";

          }?
          ]]>?
          </mx:Script>
          <mx:Panel
          title="My? Application"? horizontalAlign="center"
          paddingTop="10"? paddingBottom="10"? paddingLeft="10"
          paddingRight="10">
          <mx:Label? id="myLabel"? width="180"? fontWeight="bold"
          fontSize="24"/>?
          <mx:Button? id="myButton"? label="Click? Me!"? />?
          </mx:Panel>
          </mx:Application>
          運(yùn)行結(jié)果圖示:

          小編物語:本文援引 Dreamer's Blog ,特此感謝作者的努力。大家如果覺得這篇教程正是你所需要的話,請別忘了去作者的博客打打氣啊。

          posted on 2006-10-09 09:23 blog搬家了--[www.ialway.com/blog] 閱讀(266) 評論(0)  編輯  收藏 所屬分類: Flex
          主站蜘蛛池模板: 霍林郭勒市| 新竹市| 鄱阳县| 陇南市| 宜兰县| 鹤峰县| 灵石县| 富民县| 铁力市| 淮阳县| 开平市| 久治县| 盐池县| 通州市| 铁力市| 滦平县| 合作市| 达拉特旗| 峡江县| 荥阳市| 松原市| 天台县| 共和县| 甘孜县| 五大连池市| 晋江市| 赞皇县| 宁陕县| 金门县| 陕西省| 彭泽县| 中江县| 乾安县| 安阳市| 石阡县| 长白| 承德县| 颍上县| 莱芜市| 聂荣县| 大化|