用過as3的應該都對addEventListener不陌生了吧
addEventListener用的好的話可以解決非常非常多的問題
但是問題就是我們怎麼把它用的好勒?
像我之前就常有個困擾:
handle著EventListener的function只能傳進一個參數(就是這個EVENT)
但如果我真的需要別的參數怎摩辦?
以前我都是先把這參數放到EVENT的target中再到function作存取
後來看到這個寫法更直接
button.addEventListener( MouseEvent.CLICK, function(e:MouseEvent){ handleClickEvent(e,"TEXT")}); function handleClickEvent(e:MouseEvent,str:String) { trace("EventtargetName : "+e.target.name + "\nNo2Str : "+str); } |
所以說”在as3中所有的東西都是object”不是沒有道理的
如果確實參透這句話
那麼function還有更多好玩的應用(當然玩的過火就不好管理了)
如果只是小程式又懶得自訂Event的話,這個方法是還OK
其實原理只是監聽Event的function又去呼叫另一個function而已
不過如果是中大型的程式的話,這樣是吃效能的一件事喔~
而且也沒辦法移除事件監聽,對效能管理來說不是好事
嗯 沒錯 這只是一個方便的方式
如果用得太多太複雜,對於管理跟升級都不是見容易的事
所以,一般只適合拿來快速完成一個活動的flash
如果是中大型的官網或遊戲,我是覺得用mvc架構比較安全(很多)呵呵~
很實用,謝謝!
只是addEventListener第二個參數function(e:MouseEvent){
handleClickEvent(e,”TEXT”)}是物件的原理?!
看不懂…懇請大大開導一下^^”
這樣寫的語句,整句就是看成function物件嗎?!
恩 沒錯阿
就是把function當作一個物件來使用!!
感謝,很實用^^
你有打錯字
AS3.0都是
“object”才對
我加你的噗浪喔
謝謝提醒~^^
removeEventListener?
請問這樣子的話,我怎麼解除監聽器呢(removeEventListener)?
button.addEventListener( MouseEvent.CLICK, function(e:MouseEvent){});
試試吧…我沒有自己測過^^”