作者tony42035 (ACE)
看板Flash
標題[問題] Flash AS3.0 影片片段陣列的問題
時間Sun Oct 24 20:13:22 2010
第一次在板上發文,如果有問題我會盡快修改
先謝謝各位耐心看我的問題 :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
推 emily114005:試試看Dictionary 10/24 22:19
推 dsmwang:用for跑 if(mc = mc[i]){trace(mc)}就可以了吧? 10/24 22:20
推 wujr:在for裡隨便給他個自訂屬性就行了如mc[i].name=i 10/24 23:03
推 etrexetrex:可以用 name 其實 name 不是自訂屬性 10/25 01:26
推 wujr:感謝樓上提醒,其實意思就是說,反正給個自己認得的屬性即可 10/25 20:08
→ wujr:用個ABC當屬性也行,因為MC用AS3寫的時侯很少給NAME,所以我 10/25 20:10
→ wujr:都習慣直接給他個NAME 10/25 20:10
→ tony42035:謝謝以上各位,我這就來試試看 ^^ 10/27 21:29