精華區beta Flash 關於我們 聯絡資訊
看完這個問題我短時間以內能想到的解決方法有兩個 如果有人有其他的方法也請分醒一下囉 :) (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)
gamecubemomo:推亂插新變數XD這招真的很好用,不過還是建議2啦 02/17 00:26