事件的偵聽器-廣播器模型與事件處理函數方法不同,它允許多個代碼片斷互不沖突地偵聽同一事件。
這麼說吧,就好像訂報紙,我們可以每隔5分鐘去看一次報紙到沒到,如果您的時間很充裕的話;也可以跟報刊店的老闆打聲招呼,告訴他報紙到了,就給送來。很明顯,後者的效率遠高于前者,在flash裡面前者就像這樣
this.onEnterFrame=function(){
if(paperArrived){
sendme();
}
}
結果就是每一幀都得檢驗paperArrived是否為true,效率太低,但也能解決問題。
運用事件偵聽器-廣播器模型,就像這樣
var myObj=new Object();
myObj.onPaperArrived=function(){
sendme();
}
me.addListerner(myObj);
隻要報紙一到,馬上執行sendme();這個程式,高效啊!
下面來看一下demo,這裡我沒有把stage列入,因為比較偏,平時用到的也不多。
demo
主要代碼(這裡以mouse為例):
this.createEmptyMovieClip("tmp_mc", this.getNextHighestDepth());
var myMouseObj = new Object();
myMouseObj.onMouseDown = function() {
if (_xmouse>400 && _xmouse0 && _ymouse400 && _xmouse0 && _ymouse
[1b]源檔案下載下傳[/1b]:
[url=http://www.blueidea.com/articleimg/2006/08/3930/addListener.zip]
[color="#444444"]addListener.zip[/color]
[/url]
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/180.html