flex中dispatchEvent的用法(自定義事件) .

Evevt和EventDispatcher類在as3的事件機制中是很重要的角色,dispatchEvent()是EventDispatcher類的一個事件發送方法,它可以發送出Event類或其子類的實例,在as3中所有的顯示對象都可以發送事件,因為as3中所有的顯示對象都是EventDispatcher子類DisplayObject的實例。

?? 發送事件有三種方式:繼承EventDispatcher,如sprite等顯示對象、復合EventDispatcher或其子類、實現IEventDispatcher接口。

?? 個人認為復合EventDispatcher在實際應用中用的比較多,沒有找到合適例子,自己寫了一個很簡單的,僅供參考,為了演示把簡單的問題復雜話了,首先畫一個矩形,點擊矩形后發送一個事件,矩形接收事件后alpha變為0;

自定義事件:

package{
?? import flash.events.Event;

?? public class MyEvent extends Event{
?? ?? ?? public static const ALPHA:String = "alpha";
?? ?? ?? ?? public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
?? ?? ?? ?? super(type, bubbles, cancelable);
?? ?? ?? ?? }
?? ?? }
}



package{
import flash.display.Sprite;

public class Sample extends Sprite{
?? ??? public function Sample(){
?? ?? ?? this.graphics.beginFill(0xff6600);
?? ?? ?? this.graphics.drawRect(50,50,100,50);
?? ?? ?? this.graphics.endFill();
?? ?? ?? this.addEventListener(MyEvent.ALPHA,blackHandler);
?? }
?? private function blackHandler(evt:MyEvent){
?? ?? ?? this.alpha = 0;
?? }
}
}

主類:

package{
?? import flash.display.Sprite;
?? import flash.events.MouseEvent;

?? public class Main extends Sprite{
?? ?? ?? ??? private var sample:Sample;
?? ?? ?? ??? public function Main(){
?? ?? ?? ?? sample = new Sample();

?? ?? ?? ?? //注冊事件偵聽器
?? ?? ?? ?? sample.addEventListener(MouseEvent.CLICK,clickHandler);
?? ?? ?? ?? addChild(sample);
?? ??? }
?? ??? private function clickHandler(evt:MouseEvent){

?? ?? ?? ??? //發送事件
?? ?? ?? ?? sample.dispatchEvent(new MyEvent(MyEvent.ALPHA));
?? ??? }
??? }
}

注:在as3中只有事件的發送者才能偵聽事件。在Main類中sample實例發送的事件也只有sample注冊的偵聽器才能偵聽,在Sample中的this正是指向了sample。

這個例子很簡單,只是為了展示事件的發送接收,你還可以擴展自定義的Event類,帶上你想發送的參數

轉載于:https://www.cnblogs.com/amylis_chen/p/3848762.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258417.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

菜鳥超級進口大倉618首度亮相!跨境商品也能當日次日達

6月12日下午3點40分,來自南京的一名用戶收到了由寧波保稅倉發出、圓通速遞配送的雀巢咖啡,這距離他在天貓國際上下單僅過去4小時。 天貓618在昨日迎來進口日,進口銷量火爆上升。作為國內最為先進的跨境進口倉,菜鳥超級大倉在本次大…

頻域/s域/z域三大變換的發展史及其聯系

本文主要介紹三大變換(傅里葉變換、拉普拉斯變換及Z變換)的發展史及其之間的聯系。

Tomcat8.0.21登錄時忘記用戶名和密碼

大概是這學期開學沒多久吧,4月份的時候,為了學習javaEE,裝了Tomcat。過了這么久早就忘記用戶名和密碼了,所以無法進入Tomcat的管理界面。百度(其實我也很想用google)了一堆,幾乎都是修改用戶配置…

二元隱函數求二階偏導_在線計算專題(03):具體、抽象函數的導數、微分與方向導數的計算...

導數與微分是微積分內容的基礎,就計算來說一元函數與多元函數的導數的計算思想一致. 不管是一元函數還是多元函數,導數、偏導數的計算都是將函數視為求導變量的一元函數求導數。微分在描述形式略有區別,但是其計算方法還是一樣,只…

android更換工具鏈

歡迎轉載opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e73 android編譯系統是跟隨android源碼一起發布的,使用了gcc編譯器,也就是所謂的交叉編譯環境。android-4.2里用的編譯器是gcc4.6,本篇升級gcc4.6到gcc4.6,修…

頻域/s域/z域三大變換的性質對比

本文主要介紹三大變換(傅里葉變換、拉普拉斯變換及Z變換)的性質對比及其常用信號變換。

Java系列(1) JavaEE架構

JavaEE是開發分布式應用的工業標準,Weblogic,BES,Tomcat等是比較常見的JavaEE服務器,嚴格來說Tomcat沒有實現全部的JavaEE規范,只能算是Servlet容器。我們從一幅Spec文檔上的架構圖,粗略了解JavaEE的基本結構。該結構圖表達了JavaEE各元素的邏…

協整檢驗r語言代碼_R語言時間序列分析實例

#加載數據xread.table(file.choose())#生成時間序列對象xtimeseries#畫時間序列圖plot.ts(xtimeseries)#增加線性擬合曲線abline(lm(xtimeseries~time(xtimeseries)))1、分解時間序列分解一個時間序列意味著把它拆分成構成元件,一般序列包含一個趨勢部分、一個不規則…

pat1043. Is It a Binary Search Tree (25)

1043. Is It a Binary Search Tree (25) 時間限制400 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

微軟待辦應用更新

微軟做了一些更改和優化來改進微軟待辦。 為了在所有設備上獲得最佳體驗,需確保移動和桌面微軟待辦2021 年 12 月 31日之前的版本為 2.49 或更高版本,否則微軟待辦不再支持跨設備同步,但仍然能脫機使用。 桌面版的微軟待辦應用下載地址為&…

出租WiFi到底靠不靠譜?

創業是一種心態,也是不斷的探索,他融入我們的生活,從日常中積累,從小微處啟航。 一、背景交代 最近在換工作,本周搬到新租的單身公寓,空間不大,倒是干凈整潔。委托租房中介幫忙開通寬帶&#xf…

AD20學習筆記1---元件庫的創建

前言: 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19(入門到精通全38集)四層板智能車PCB設計視頻教程》,視頻地址:Altium Designer 20 19(入門到精通全38集)四層板智能車PCB設…

nodejs環境搭建與express安裝配置

一、NPM 1、下載nodeJS 下載地址:https://nodejs.org/en/download/ 因為我的系統是Linux 的,所以下載已經編譯好的Linux,nodejs tar包 3、下載完成過后放到/usr/local/下面 4、解壓:因為這個包不是gz的包所以解壓 正確&#xff1a…

在vue中實現picker樣式_基于Vue實現timepicker

主要用到的還是Vue的基本知識而已,不過要想到的細節很多。先放效果,點擊上框,顯示timepicker。而且可以根據點擊的是時還是分來改變圓盤的數字。這里我用了兩個組件,和,這里的時和分的數值我掛在了根實例中&#xff0c…

玩玩

金字塔一樣輸出字母&#xff0c;如 輸入 d a a b a a b c b a a b c d c b a 代碼實現 #include<stdio.h> int main(void) { char z; int j,t,k; scanf("%c",&z); t0; if(z>a&&z<z) { for(int i0;i<z-a;i) { for(kz-a-t;k…

總結界面框架_UI_Adapter

本人定期更新經典案例及解決方案如有疑問請聯系我QQ1822282728 -- 277627117 下面是常用到的ui Demo安卓三級篩選菜單listview&#xff08;非常經典&#xff09; http://download.csdn.net/detail/zillvip/9138975android地圖應用&#xff08;路徑規劃&#xff0c;地理編碼&…

AD20學習筆記2---原理圖繪制及編譯檢查

前言&#xff1a; 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設計視頻教程》&#xff0c;視頻地址&#xff1a;Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設…

git如何設置master分支的權限_Git 從master 分支拉新分支開發

一、 切換到被copy的分支(master)&#xff0c;并且從遠端拉取最新版本$git checkout master$git pull二、從當前分支拉copy開發分支$git checkout -b devSwitched to a new branch dev三、 把新建的分支push到遠端$git push origin dev四、拉取遠端分支$git pullThere is no tr…

Yii框架 phpexcel 導出

一、說明 之前使用的是PHPExcelXML包實現的數據導出&#xff0c;由于導出的文件擴展名為“.xls” 在office2007上帶不開&#xff0c;報如下圖錯誤&#xff08;用 WPS都能打開&#xff09; 因此&#xff0c;此次采用了 PHPExcel包 不僅支持生成Excel&#xff08;.xls&#xff09…

慎用stl中的erase的返回值

在windows下的VC編譯或者Mac OX的XCode下編譯也許不會出問題。但是在linux下可能就會掛掉。 比如我上一篇里的poj4093出現了編譯錯誤 2007120.8890/Main.cc: In function ‘int main()’: 2007120.8890/Main.cc:50:44: error: no match for ‘operator’ in ‘itr1 a.std::set…