Re: [問題] 請問如何用ComboBox控制內部元件?

看板Flash作者 (CJ Cat)時間18年前 (2008/04/20 13:49), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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)

04/20 14:09, , 1F
原來是用listener...原本完全沒概念的說@@
04/20 14:09, 1F

04/20 14:11, , 2F
謝謝大大詳細的教學 我學到了好多喔~感恩^^
04/20 14:11, 2F

04/20 21:17, , 3F
推用Listener
04/20 21:17, 3F
文章代碼(AID): #182jbPV8 (Flash)
文章代碼(AID): #182jbPV8 (Flash)