国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 南昌县| 台安县| 精河县| 五大连池市| 鄂温| 寻乌县| 莱芜市| 正镶白旗| 克山县| 油尖旺区| 通州区| 湘潭市| 页游| 镇宁| 黑水县| 江永县| 尉犁县| 汨罗市| 丰都县| 崇明县| 上杭县| 荥经县| 凤庆县| 紫金县| 临沂市| 藁城市| 裕民县| 婺源县| 万全县| 康平县| 长宁区| 鱼台县| 新民市| 塔河县| 老河口市| 营山县| 岱山县| 介休市| 河北省| 新宁县| 达日县|