Re: [問題] 按鈕取得序號的問題....

看板Flash作者 (CJ Cat)時間17年前 (2009/02/16 20:51), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
看完這個問題我短時間以內能想到的解決方法有兩個 如果有人有其他的方法也請分醒一下囉 :) (1)利用dynamic class的特性 MovieClip, Sprite等class都是dynamic class 這個特性是從早期的Flash沿用過來的 存在目的是為了不想寫複雜城市的美術人員著想 每一個dynamic class的物件都可以自由在身上"亂插"新變數 所以你可以這樣寫 var BTNS:Array = [B01_btn,B02_btn,B03_btn]; for (var i:uint=0; i<BTNS.length; i++) { BTNS[i].addEventListener(MouseEvent.CLICK, Link); //插新變數 BTNS[i].data = i; } function Link(e:MouseEvent) { var _mc:SimpleButton =e.currentTarget as SimpleButton; //存取新插的變數 trace(MovieClip(e.current).data); } (2)利用AS3新的Dictionary class Dictionary class相當於C++ STL裡面的map<T1, T2> class 也相當於C#裡面的Dictionary<T1, T2> class 能夠讓一個物件的值對應到另外一個物件的值 只是AS3的Dictionary比較彈性,不用限定T1和T2是什麼class 所以可以這樣寫 import flash.utils.Dictionary; var BTNS:Array = [B01_btn,B02_btn,B03_btn]; //對應序號用的Dictionary物件 var dic:Dictionary = new Dictionary(); for (var i:uint=0; i<BTNS.length; i++) { BTNS[i].addEventListener(MouseEvent.CLICK, Link); //定義對應序號值 dic[BTNS[i]] = i; } function Link(e:MouseEvent) { var _mc:SimpleButton =e.currentTarget as SimpleButton; //存取對應的序號值 trace(dic[e.currentTarget]); } -- 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.252 ※ 編輯: cjcat2266 來自: 61.228.85.252 (02/16 20:51)

02/17 00:26, , 1F
推亂插新變數XD這招真的很好用,不過還是建議2啦
02/17 00:26, 1F

02/17 16:47, , 2F
感謝CJ大~這樣定義序號時方便多了~!!
02/17 16:47, 2F
文章代碼(AID): #19cM5CaU (Flash)
文章代碼(AID): #19cM5CaU (Flash)