看板 Flash 關於我們 聯絡資訊
※ 引述《cjcat2266 (CJ Cat)》之銘言: : ※ 引述《LacunaCoil (Klean)》之銘言: : : 事情是當這個Listener聽到MouseEvent.Click (string)的時候 (第一個參數用意) : : 這個Listener Function接受一個Event Object (第二個參數用意) : : 所以這個Event Object基本上不會出現在這行code上面 (黑箱作業) : : 我們也找不到 是不是 : : (這樣的觀念還有錯嗎? 抖) : 剛剛已經說過了 : 註冊事件的listener function接收唯一的一個參數就是Event object : 所以沒有Event object抓不到的問題 : btn.addEventListener(MouseEvent.CLICK, listener): : function listener(e:MouseEvent):void { : //Event object是抓得到的 : trace(e); : } : : 我真的想錯了 : 不用想了,一切都照AS的規定來寫就不會有想錯的問題 :) : 這些語法和規定在說明書裡面都寫得清清楚楚的 : 建議你把它們通通看完再說 : http://0rz.tw/aVT74 如果想要傳其他的參數給Event Handler,可以這樣用: 把這個function 包在一個叫 Delegate 的 class 中 public static function create( method : Function, ... args ) : Function { return function( ... rest ) : * { return method.apply( null, rest.length>0? (args.length>0?rest.concat(args):rest) : (args.length>0?args:null) ); }; } stage.addEventListener( MouseEvent.CLICK, Delegate.create( onClick, "test"); function onClick(e:MouseEvent, str:String):void{ trace(str); // test } http://www.bongiovi.tw/others/delegate.zip 這邊有個簡單的範例檔。 -- http://www.bongiovi.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 77.194.76.68 ※ 編輯: gargouille 來自: 77.194.76.68 (06/18 03:44)
poomsne:法國人!! 06/18 12:00
LacunaCoil:感謝 06/18 15:07
cjcat2266:哈,這裡也有個類似做法的,可參考 http://0rz.tw/0alqf 06/18 23:51