[問題] 偵聽事件中的變數傳遞
對不起~ 標題打得有點怪怪的
因為敝人是AS新手 所以可能有些基本觀念上不太正確ˊ__ˋ"
想請教版上大大的問題如下:
var A_Xadd:Array = new Array();
var A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
這邊 A0~A14 我分別要給定影片片段
原本想使用 陣列 或 for 的寫法來命名
可是 陣列 → 之後不知道怎麼讓每個物件隨機移動?
for → 在動態指定名稱的時後會產生錯誤
所以最後我採用了最笨的方式 orz
Hit("A",0);
function Hit(ObjectKind:String,num:int):void {
this[ObjectKind+num].h0.addEventListener(MouseEvent.MOUSE_OVER,H0);
這邊 [ObjectKind+num].h0 其實等於 A0.h0
h0是放在 A0 中所存的 MC 中的另一個 MC
(對不起 好饒舌ˇˇ")
trace(this[ObjectKind+"_Xadd"][num]);
trace(As_Xadd[num]);
這邊兩個trace出來的東西一致 也沒有發生錯誤
function H0(e:MouseEvent):void{
trace(this[ObjectKind+"_Xadd"]);
這邊會出現 undefined 的錯誤內容 → X ;(
trace(this["As_Xadd"][num]);
這邊會出現 TypeError: Error #1010:
詞彙未定義且沒有屬性。
at MethodInfo-30()
的錯誤內容 → X ;(
trace(As_Xadd[num]);
這邊會trace出 A_Xadd[0] 陣列的內容 → O :)
表示在 function Hit 中接收的變數 num
也可以使用在 屬於 Hit 底下的 H0 偵聽函式
trace(this[ObjectKind+"_Xadd"][num]);
這邊也是出現 TypeError: Error #1010:
詞彙未定義且沒有屬性。
at MethodInfo-30()
的錯誤內容 → X ;(
this[ObjectKind+"_Xadd"][num] += 0.5;
同上
}
}
我想問的是
為什麼會出現 undefined 和 TypeError: Error #1010 這兩個錯誤?
酸然我猜大概是 Arrary 的名稱
我在呼叫的時候把他視為字串的關係
請問如果我想在偵聽的function中呼叫動態的array名稱該如何下手呢?
如 A_X[] B_X[] C_X[]
a= "A" b= "B" c= "C"
num = 0~9
this[a+"_X"][num]
(可是經過上面的test 應該是不可行的Q__Q)
謝謝大大解惑ˇ__ˇ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.130.191
推
11/03 14:57, , 1F
11/03 14:57, 1F
推
11/04 09:27, , 2F
11/04 09:27, 2F
→
11/04 09:27, , 3F
11/04 09:27, 3F