[ActionScript 3.0] 用addEventListener也能傳參數

LINEで送る
[`evernote` not found]

用過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還有更多好玩的應用(當然玩的過火就不好管理了)

10 則迴響於《[ActionScript 3.0] 用addEventListener也能傳參數

  1. 如果只是小程式又懶得自訂Event的話,這個方法是還OK
    其實原理只是監聽Event的function又去呼叫另一個function而已
    不過如果是中大型的程式的話,這樣是吃效能的一件事喔~
    而且也沒辦法移除事件監聽,對效能管理來說不是好事

    • 嗯 沒錯 這只是一個方便的方式
      如果用得太多太複雜,對於管理跟升級都不是見容易的事
      所以,一般只適合拿來快速完成一個活動的flash
      如果是中大型的官網或遊戲,我是覺得用mvc架構比較安全(很多)呵呵~

  2. 很實用,謝謝!

    只是addEventListener第二個參數function(e:MouseEvent){
    handleClickEvent(e,”TEXT”)}是物件的原理?!

    看不懂…懇請大大開導一下^^”
    這樣寫的語句,整句就是看成function物件嗎?!

回應已關閉。