Flash 板


LINE

※ 引述《etrexetrex (ETREX)》之銘言: : addListener (MovieClipLoader.addListener 方法) : public addListener(listener:Object) : Boolean : 註冊一個物件,當 MovieClipLoader 事件處理常式被叫用時,使用該物件來接收告知。 : 適用版本:ActionScript 1.0;Flash Player 7 : 參數 : listener:Object - 一個物件,用來偵聽來自 MovieClipLoader 事件處理常式的回呼告 : 知。 : 傳回值 : Boolean - 一個布林值。如果成功建立偵聽程式,則傳回 true;否則傳回 false。 : == : 以上是flash的一個內建類別(MovieClipLoader)裡的addListener 的說明 : 問題1:什麼是Listener,我認為是一個等待呼叫的函數,不過感覺怪怪的... : 問題2:如果寫自訂類別,怎樣讓外部可以使用addListener,就像MovieClipLoader一樣 : 問題3:像onPress這種東西,是物件導向觀念的,一種等待呼叫的函數 : 不過我一直想不通的是以程序導向來說要作出物件導向應該如何做 : 我以為是類似以下: : while() 或 onEnterFrame() =function() : { : if(當滑鼠點某個按鈕) : 呼叫onPress : } : 像這樣不斷的判斷是否被呼叫,不過之前老師說過不是這樣 : 那麼就效率來說,使用Listener會和上述的結構差很多嗎? : 希望懂這方面的版友可以教我 <(_ _)> 不好意思,先說在前面,這可能不是回答,而比較像是討論 也想請更多有經驗的人分享 ^^; 以下是我的使用經驗 1. 就第一點而言,我也覺得listener是一個等待被呼叫的function 我用public function 也可以達到相同的效果 但是就是在於Listener 可以實現event Driven,也就是之後不管要再加什麼function 我只要再加一個listener 即可,而不用去修改主程式來呼叫這個function 2. EventDispatcher.addEventListener() 向組件實體註冊偵聽程式。 EventDispatcher.dispatchEvent() 用程式設計方式傳送事件。 Delegate mx.utils.Delegate dispatchEvent:Function addEventListener:Function removeEventListener:Function 這是一般我要用到事件來處理時會用到的東西 首先你要讓一個不管是MovieClip 還是任何object能夠去dispatch 一個event 用的是在constructor 裡加上 mx.events.EventDispatcher.initialize(this); 這樣他就有能力去發布一個event: dispatchEvent({type:"evtName", target:this}); type 是指這個事件的名稱,target是指目標 這邊除了以上兩個值一定要有之外,其他的東西是可以延伸的 只要包在Object裡即可 ex: var o:Object = new Object(); o.type = "onInit"; o.id = 0; o.name = "gargouille"; dispatchEvent(o); 而接收的部份: target.addEventListener("onInit", Delegate.create(this, initial)); 意思是我向這個target監聽這個onInit的事件 一但這個target丟這個事件出來時,我就去接來處理 然後丟給initial 這個function function initail(e:Object):Void{ this.userID = e.id; this.userName = e. name; } 以上就是我的使用經驗,還請大家高抬貴手,不要鞭的太兇 ^^|| 而addListener 和 addEventListener之間的差別我也不是很清楚 這邊只是提出我使用Listener還有自訂事件的方法,希望對大家有幫助! 另外附上Delegate 的說明: Delegate 類別可讓您執行特定範圍內的函數。此類別讓您可以將相同事件傳送 給兩個不同的函數 (請參閱「使用元件」中的對函數委派事件),也可以呼叫所 包含類別範圍內的函數。 當您將某個函數當作參數傳送至 EventDispatcher.addEventListener() 時, 便會在廣播程式組件實體範圍內叫用這個函數,而不是這個函數在其中所宣告 的物件 (請參閱「使用元件」中的委派函數的範圍)。 您可以使用 Delegate.create(),在所宣告物件範圍內呼叫函數。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.210.181.188
1F:推 aquarianboy:推 :) 03/27 13:07







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP