成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析Flex事件機制的三個階段

開發 后端
本文向大家介紹一下Flex事件機制中的基本概念,每個事件對象中都包括事件類型(type)和事件源(target),便于event listener知道該事件的類型以及是誰拋出這樣的事件。

在學習Flex的過程中,你可能會遇到Flex事件機制這方面的問題,這里和大家分享一下Flex事件機制的解決方法,希望本文的介紹能讓你有所收獲。

Flex事件機制中的基本概念

event objects(事件對象):所有的事件對象都是flash.events.Event或者其子類。比如說鼠標事件MouseEvent,計時器事件TimerEvent。每個事件對象中都包括事件類型(type)和事件源(target),便于event listener知道該事件的類型以及是誰拋出這樣的事件。簡單的理解,事件對象就是ActionScript中的各種事件類型的對象。
    event dispatchers(事件源):是事件發起的主體。所有的dispatcher都是EventDispatcher或其子類。事件觸發源必須提供API讓listener進行對該事件的注冊(register)。簡單的理解,事件源就是一個控件。
    event listeners(事件監聽器):在AS 3.0中它往往表現為一個函數。我們必須為每個特殊的事件和事件源注冊一個監聽器,當事件發生的時候,事件源(dispatcher)會通知該監聽器去處理制定的事件。簡單的理解,監聽器就是一個函數。

注冊監聽器

在AS 3.0中可以通過下面的語法格式進行注冊。

  1. dispatcher.addEventListener(eventName, listener);  

當然在Flex中還有另外一種格式,在mxml文件中對一個控件的事件直接制定一個處理函數,如

  1. <mx:Button label="TestClick" click="clickHandler()"/> 

Flex事件機制中事件階段

我們把事件觸發源分為兩類:一類是那些顯示在界面中的元素拋出的事件,一類是那些不在界面中顯示的元素拋出的事件。很簡單,舉個例子:***類如URLLoader對象去load圖片或其他資源所拋出的如complete事件,就屬于***類。界面上的一個按鈕所拋出的click事件就是第二類,它會觸發一個事件流,引發一系列的事件,它又分三個階段:捕獲(capture),執行(target) 和冒泡(bubble),姑且這樣表達這三個階段。

捕獲階段(capture)

在這個階段,Flash Player會去查找事件的觸發源,它是通過根顯示元素(root display object)逐層向下尋蹤,直到找到事件的發起源頭,如你在button上click后,Flash Player找到的事該button對象。在這個階段監視器(listener)默認是不會收到任何消息的(默認只在target和bubble階段收到消息)。

如果你想在捕獲階段讓listener收到消息并有所動作,那么你可以在注冊的時候改變第三個參數為true,如下面的方法:object.addEventListener(MouseEvent.CLICK, onClick, true);

該階段聽起來很陌生,事實上它很少使用。但它卻在事件流中扮演很重要的角色。它可以在事件到達子元素(child elements)之前被application捕獲,當然也就可以阻 止事件到達子元素。

目標執行階段(target)

在這個階段是事件的執行階段,也就是我們常用的用來處理事件流的代碼。

冒泡階段(bubble)

***的這個階段其實就是***個階段的逆向過程。它就是在事件代碼執行完畢后通過子元素逐級向父元素發出該事件,一直到根元素。在這個階段你不需要特別的為監聽器指定什么,你只要正常的注冊事件就可以了。監聽器會在該階段收到通知。但前提是該事件是能夠bubble的。

垃圾回收

Flash Player是通過引用計數器(reference counting)以及標記與清除(mark and sweep)來實現垃圾回收的。

引用計數器簡單的講就是給每個對象分配的技術器,一旦該對象的計數器為0時,就表示該對象可能不再被使用,可以安全的清除了。它的弊端就是不能解決循環引用問題,一旦出現循環引用,就不能通過該方法進行垃圾回收。

而標記與清除(mark and sweep)就是為了解決循環引用問題的。它是通過在程序中遍歷每個活動的、可到達的節點,一旦發現一些節點是處在活動節點之外的,就被認為不再有用,就可以被回收了。

這兩種機制是聯合運行在垃圾回收過程中來保證正確回收資源。但他們并不能回收程序錯誤導致的垃圾。而監聽器的注冊就最容易導致這個問題的發生。

【編輯推薦】

  1. 技術分享 用FlexBuilder創建Flex項目
  2. Flex基礎 創建***個Flex項目
  3. 深入剖析Flex事件機制
  4. FlexBuilder3.0與Eclipse3.4的***結合
  5. 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件 
責任編輯:佚名 來源: csdn.net
相關推薦

2010-08-06 10:03:42

Flex事件

2017-12-26 05:40:52

物聯網IT數據

2010-11-15 10:50:43

Oracle啟動模式

2010-08-04 13:23:29

Flex事件

2010-07-29 10:33:59

Flex鍵盤事件

2023-09-08 14:09:31

云轉型云技術

2010-08-06 09:45:50

Flex事件機制

2010-08-12 15:35:44

Flex事件機制

2010-08-04 13:52:53

Flex事件機制

2010-08-13 14:05:24

Flex事件機制

2010-08-09 15:09:27

Flex數據訪問

2020-12-28 17:03:09

區塊鏈比特幣金融

2009-06-10 19:20:21

IT職業人士職場

2010-08-13 14:19:44

Flex綁定機制

2010-08-09 11:14:36

Flex事件處理

2010-08-04 14:07:59

Flex事件機制

2021-08-06 09:47:01

鴻蒙HarmonyOS應用

2013-08-01 10:16:06

Linux

2011-08-22 14:21:00

瀏覽器

2010-08-13 13:56:02

Flex事件機制
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产午夜精品一区二区三区嫩草 | 一级午夜aaa免费看三区 | 亚洲欧美一区二区三区国产精品 | 国产精品成人一区二区三区夜夜夜 | 国产在线观看一区二区 | 国产精品亚洲第一 | 国产网站在线播放 | 大象视频一区二区 | 鸳鸯谱在线观看高清 | 亚洲在线 | 日本网站免费在线观看 | 国产视频一区二区 | 精品亚洲视频在线 | 亚洲免费人成在线视频观看 | 久久久精品黄色 | av一二三区 | 99国产精品一区二区三区 | 亚洲精品视频二区 | 谁有毛片 | 羞羞的视频免费看 | 午夜影院网站 | 国产精品久久久久一区二区三区 | 国产精品久久777777 | 欧区一欧区二欧区三免费 | 中文字幕第7页 | 久久久久久免费精品一区二区三区 | 欧美成年网站 | 久久久久黑人 | 亚洲精品一区在线观看 | 欧美激情精品久久久久久变态 | 国产色99精品9i | 天堂综合网 | 国产一区二区三区在线视频 | 99热精品在线| 成人免费视频播放 | 亚洲一区二区三 | 日韩精品一区二区三区中文在线 | 在线欧美一区二区 | 亚洲一区 中文字幕 | 国产欧美日韩一区二区三区在线观看 | 一区二区三区国产精品 |