看板 Flash 關於我們 聯絡資訊
※ 引述《kuwood (古)》之銘言: : (我只知道function裡應該會有 : on(press){_root.mc名.gotoAndPlay("要的那格影格");} : 其他就不會了ˊˋ) 其實也不是用on(press)喔~ component 2.0用的event model不是一般AS2的handler model 而是跟AS3一樣的listener model listener model的特色如下: (1)需要有一個function被定義出來,此為listener (2)listener要去註冊成一個物件的listener (3)一個物件發生事件以後會丟出一個event object (4)如果這個事件有listener註冊(監聽)的話 這個event object就會被當作唯一的參數傳入listener (所以listener定義的時候必須只有一個參數) (5)接著這個listener就會啟動 並且可以使用傳入的event object身上帶有的事件相關資訊 AS3和component 2.0的listener機制還使有一些差異 最主要的就是,AS3的listener可以直接去註冊事件 component 2.0的話則是由一個Object物件去註冊事件 此物件稱為listener object 而listener object身上定義與事件同名的function就是監聽事件的listener 好啦,說了這麼多 最後就來看看要達到你的效果的code吧: //新增自訂的label和其所對應的data值 box_cb.addItem({label:"frame 1", data:1}); box_cb.addItem({label:"frame 2", data:2}); box_cb.addItem({label:"frame 3", data:3}); //宣告listener object var listenerObj:Object = new Object(); //定義listener object身上的listener listenerObj.change = function(e:Object) { //這邊的效果你可以自己寫 //ComboBox的event object有哪些可用的property //請自行參考F1說明 //這邊的target.selectedItem.data //就是目前ComboBox顯示的label對應的data值 mc.gotoAndStop(e.target.selectedItem.data); }; //註冊listenerObject為box_cb的listener object //"change"代表ComboBox "label改變"的事件 box_cb.addEventListener("change", listenerObj); -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.85.248 ※ 編輯: cjcat2266 來自: 61.228.85.248 (04/20 13:51)
kuwood:原來是用listener...原本完全沒概念的說@@ 04/20 14:09
kuwood:謝謝大大詳細的教學 我學到了好多喔~感恩^^ 04/20 14:11
GODSIZE:推用Listener 04/20 21:17