[問題] Flash AS3.0 影片片段陣列的問題

看板Flash作者 (ACE)時間13年前 (2010/10/24 20:13), 編輯推噓5(504)
留言9則, 5人參與, 最新討論串1/1
第一次在板上發文,如果有問題我會盡快修改 先謝謝各位耐心看我的問題 :D 我現在做的這個主要是由外部(資料庫提供的路徑)載入圖片進FLASH 載入後我將圖片(loader)用迴圈的方式 指定到一個影片片段的陣列裡面(影片片段才可以Drag) 接著使用者可以進行拖拉,擺放位置確定後我再將影片片段的XY座標存回資料庫 不知道我這樣講會不會很籠統 不過以上講的功能我都做完了 我現在的問題是 因為現在影片片段是一個陣列 mc[] 所以我每次要監聽畫面上每一個mc的時候 都要用for迴圈去跑 for (i=0 ; i<mc數目 ; i++) {   mc[i].addEventListener(MouseEvent.MOUSE_DOWN, drag); } 而在drag()裡 我可以很輕易的用 function drag (ev:MouseEvent):void { var mc = ev.currentTarget; mc.startDrag(); } 這種方法知道我目前滑鼠觸發的是mc陣列裡的哪一個 但我沒有辦法在drag()裡,滑鼠觸發後 知道我滑鼠觸發所對應到的是影片片段陣列的 哪一個元素值 ex:0,1,2,3... 或是 實體名稱 ex: mc[1],mc[2],mc[3].... 我試過使用trace(ev.curruentTarget.name) 但出來的都是 (instance+數字) 這種實體名稱 ex:instance19,instance16 我會有這樣的需求是因為 我有另一個陣列是存放資料,他的排列跟mc陣列排列的順序是一樣的 所以當我mc陣列裡的值有修改的時候(ex:x,y 座標) 我另一個陣列同一個元素值的資料也必須跟著修改 或是當我做觸發的時候,我會從另一個陣列的同一個元素值裡讀出資料 我目前就卡在這邊 不知道是不是我google不到其實有函式可以使用 還是我根本的想法都錯了,其實有更簡單的方式 或是這種方式根本不可行呢?? P.S 爆肝寫了好多天程式 精神恍恍惚惚 如果有表達不清楚的地方麻煩提出喔!! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.207.224

10/24 22:19, , 1F
試試看Dictionary
10/24 22:19, 1F

10/24 22:20, , 2F
用for跑 if(mc = mc[i]){trace(mc)}就可以了吧?
10/24 22:20, 2F

10/24 23:03, , 3F
在for裡隨便給他個自訂屬性就行了如mc[i].name=i
10/24 23:03, 3F

10/25 01:26, , 4F
可以用 name 其實 name 不是自訂屬性
10/25 01:26, 4F

10/25 01:28, , 5F

10/25 20:08, , 6F
感謝樓上提醒,其實意思就是說,反正給個自己認得的屬性即可
10/25 20:08, 6F

10/25 20:10, , 7F
用個ABC當屬性也行,因為MC用AS3寫的時侯很少給NAME,所以我
10/25 20:10, 7F

10/25 20:10, , 8F
都習慣直接給他個NAME
10/25 20:10, 8F

10/27 21:29, , 9F
謝謝以上各位,我這就來試試看 ^^
10/27 21:29, 9F
文章代碼(AID): #1Cn2BbOf (Flash)