<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Flex的事件流

    Posted on 2007-02-11 23:50 云自無心水自閑 閱讀(3924) 評論(1)  編輯  收藏 所屬分類: FlexFlex2

    Flex是一個事件驅動的編程模型, 任何事情的發生, 其背后必然存在一個事件. 而開發者第一次看到MXML時, 很難體會到一個Xml標記的應用的事件流和實例化的生命周期. 這個對于HTML和Flash的開發者尤其會感到困惑, 因為其熟悉的方式與Flex的一點也不相似. HTML的實例化是從上到下的, Flash的執行是從Frame0開始一幀幀運行的. 而Flex則又有不同.

    從我們開始學習Flex時, 我們就需要了解事件流和MXML的實例化. 我非常困惑因為我實在難以理解什么樣的事件會被觸發或者事件什么時候會被觸發. 關鍵是要理解事件的基礎并親自觀察事件流的初始化.


    我們來看一個簡單的MXML的應用.

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application
    ??? xmlns:mx="??? layout="absolute"
    ??? backgroundGradientColors="[#67cbff, #fcffff]"
    ??? color="#000000"
    ??? fontSize="12"???
    ??? preinitialize="report( event , 'preinitialize' )"
    ??? initialize="report( event , 'initialize' )"
    ??? creationComplete="report( event , 'creationComplete' )"
    ??? applicationComplete="report( event , 'applicationComplete' )"
    ??? >
    ???
    ??? <mx:Script>
    ??????? <![CDATA[???
    ???????????????????
    ??????????? [Bindable]
    ???????????
    ??????????? public var outTextData:String="";
    ???????????
    ??????????? public function report( event:Event , value:String ):void
    ??????????? {
    ??????????????? outTextData += String( flash.utils.getTimer() ) + 'ms >> '
    ??????????????? + event.currentTarget + '.' + value + '\n';???
    ??????????? }
    ???????????
    ??????? ]]>
    ??? </mx:Script>
    ???
    ??? <mx:TextArea
    ??????? id="outTextArea"
    ??????? text="{ outTextData }"
    ??????? right="10" left="10" top="50" bottom="10" alpha="0.5"
    ??????? wordWrap="false"
    ??????? initialize="report( event , 'initialize' )"
    ??????? creationComplete="report( event , 'creationComplete' )"
    ??????? />
    ???
    ??? <mx:Button
    ??????? y="10" height="30" left="168" width="150"
    ??????? id="HelloButton"
    ??????? label="Say Hello"
    ??????? initialize="report( event , 'initialize' )"
    ??????? creationComplete="report( event , 'creationComplete' )"
    ??????? rollOver="report( event , 'rollOver' )"
    ??????? rollOut="report( event , 'rollOut' )"
    ??????? click="report( event , 'click > Hello!' )"
    ??????? />
    ???????
    ??? <mx:Button
    ??????? id="GoodByeButton"
    ??????? label="Say Goodbye"
    ??????? y="10" left="10" height="30" width="150" color="#000000"
    ??????? initialize="report( event , 'initialize' )"
    ??????? creationComplete="report( event , 'creationComplete' )"
    ??????? click="report( event , 'click > Goodbye!' )"
    ??????? />
    ???????
    ??? <mx:Button
    ??????? id="ClearButton"
    ??????? label="Clear"
    ??????? y="10" left="326" height="30" color="#000000" right="10"???????
    ??????? initialize="report( event , 'initialize' )"
    ??????? creationComplete="report( event , 'creationComplete' )"
    ??????? click="outTextData='';report( event , 'click' )"
    ???????? />
    ???
    </mx:Application>


    這個應用運行時, 輸出了實例流程和事件流. 這校我們就能夠看到所有事件的觸發順序. 可以發現應用啟動后, 事件的順序是一定的. 下面是輸出的內容:

    167ms >> EventFlow0.preinitialize
    183ms >> EventFlow0.outTextArea.initialize
    187ms >> EventFlow0.HelloButton.initialize
    188ms >> EventFlow0.GoodByeButton.initialize
    189ms >> EventFlow0.ClearButton.initialize
    189ms >> EventFlow0.initialize
    243ms >> EventFlow0.outTextArea.creationComplete
    243ms >> EventFlow0.HelloButton.creationComplete
    243ms >> EventFlow0.GoodByeButton.creationComplete
    244ms >> EventFlow0.ClearButton.creationComplete
    244ms >> EventFlow0.creationComplete
    246ms >> EventFlow0.applicationComplete

    一旦applicationComplete事件觸發后, 組件就會在鼠標事件派發后觸發自己的事件.

    1807ms >> EventFlow0.HelloButton.rollOver
    2596ms >> EventFlow0.HelloButton.rollOut
    2954ms >> EventFlow0.HelloButton.rollOver
    3170ms >> EventFlow0.HelloButton.rollOut
    3543ms >> EventFlow0.HelloButton.rollOver
    4052ms >> EventFlow0.HelloButton.click > Hello!
    4267ms >> EventFlow0.HelloButton.click > Hello!
    4474ms >> EventFlow0.HelloButton.click > Hello!
    4569ms >> EventFlow0.HelloButton.rollOut
    4907ms >> EventFlow0.GoodByeButton.click > Goodbye!
    5130ms >> EventFlow0.GoodByeButton.click > Goodbye!

    ?




    評論

    # re: Flex的事件流  回復  更多評論   

    2007-08-16 23:35 by Tomato
    Thanks, helped me a lot ~ :-)
    主站蜘蛛池模板: 中国好声音第二季免费播放| 亚洲精品亚洲人成在线麻豆| 美女露隐私全部免费直播| 久久99九九国产免费看小说| 精品亚洲成AV人在线观看| 狼群影院在线观看免费观看直播| 亚洲国产香蕉碰碰人人| 84pao国产成视频免费播放| 亚洲第一二三四区| 国产免费久久精品99re丫y| 亚洲午夜无码久久| 四虎国产精品免费视| 一级毛片aaaaaa视频免费看| 亚洲人成亚洲人成在线观看| 九九美女网站免费| 亚洲国产av美女网站| 免费无码黄网站在线观看| 一级毛片试看60分钟免费播放| 亚洲精品国偷自产在线| 久久WWW免费人成一看片| 亚洲另类自拍丝袜第五页| 亚洲成A人片在线观看中文| 好湿好大好紧好爽免费视频| 亚洲天堂男人天堂| 妞干网手机免费视频| 亚洲视频在线免费| 亚洲黄色三级网站| 国产免费私拍一区二区三区| 中文字幕在线观看免费| 亚洲国产日韩女人aaaaaa毛片在线| 免费观看男人免费桶女人视频| 久久久免费观成人影院| 亚洲国产成人精品无码区在线网站| 国产精品va无码免费麻豆| 99精品视频在线观看免费| 亚洲制服丝袜第一页| 久久亚洲国产精品123区| 一个人在线观看视频免费| 国产精品免费在线播放| 久久精品国产亚洲αv忘忧草| 国产在线19禁免费观看|