国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開發(fā) > 正文

1.14.使用自定義事件以及事件數(shù)據(jù)傳遞

2024-04-27 13:51:43
字體:
供稿:網(wǎng)友
1.14.1.問題
我想使用自定義事件類發(fā)出事件以及數(shù)據(jù)。
1.14.2.解決辦法
繼承flash.events.Event創(chuàng)建類,創(chuàng)建與事件數(shù)據(jù)相關(guān)的屬性。
1.14.3.討論
有時(shí)候我們希望發(fā)送事件時(shí)也附帶數(shù)據(jù)對(duì)象以便監(jiān)聽者不用訪問發(fā)出事件的對(duì)象也能訪問數(shù)據(jù)。渲染器或深度嵌入對(duì)象通過發(fā)出事件通過多個(gè)組件到達(dá)監(jiān)聽器并發(fā)送數(shù)據(jù)而不需要監(jiān)聽組件去尋找對(duì)象及訪問其組件。作為一種解決方案,需要?jiǎng)?chuàng)建一個(gè)事件類型的類,在事件構(gòu)造函數(shù)中添加需要的數(shù)據(jù)類型,記得要調(diào)用Event的super方法以便Event對(duì)象能正確被實(shí)例化,例如:
+展開
-ActionScript
package oreilly.cookbook {
import flash.events.Event;
public class CustomPersonEvent extends Event {
public var person:Person;
public var timeChanged:String;
Public function CustomPersonEvent(type:String,bubbles:Boolean=false,
cancelable:Boolean=false,
personValue:Person=null,
timeValue:String=""
)
{
super (type, bubbles, cancelable);
person = personValue;
timeChanged = timeValue;
}
override public function clone():Event {
return new CustomPersonEvent(type, bubbles, cancelable, personValue,timeValue);
}
}
}

在這個(gè)自定義Event類,繼承的Event.clone方法被重寫以便復(fù)制CustomPersonEvent自身。如果事件監(jiān)聽器想試圖重新發(fā)出自定義事件,可以這樣寫:
+展開
-ActionScript
Private function ustomPersonHandler(event:CustomPersonEvent):void {
dispatchEvent(event);
}

這個(gè)發(fā)出的事件并不是先前收到的那個(gè),而是使用clone方法創(chuàng)建的CustomPersonEvent 一個(gè)復(fù)本,如果clone方法沒有被重新則會(huì)把CustomPersonEvent的所有屬性都被復(fù)制,那時(shí)clone方法返回的將是flash.events.Event而不會(huì)有CustomPersonEvent的任何屬性。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 康保县| 延吉市| 天峻县| 康乐县| 衡东县| 松原市| 津南区| 榕江县| 大庆市| 沂源县| 富顺县| 荔波县| 马龙县| 赣州市| 成武县| 五河县| 苏尼特右旗| 凭祥市| 宜昌市| 北安市| 吴川市| 延边| 漳浦县| 沙田区| 崇州市| 商洛市| 敖汉旗| 原阳县| 安国市| 长海县| 寿宁县| 新野县| 务川| 泌阳县| 彩票| 黄石市| 鹿邑县| 江永县| 河池市| 道孚县| 道孚县|