[問題] 偵聽事件中的變數傳遞

看板Flash作者 (小M)時間16年前 (2009/11/03 14:44), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
對不起~ 標題打得有點怪怪的 因為敝人是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
是在HO function 中的 this 跟外面的 this 不是同一個
11/04 09:27, 2F

11/04 09:27, , 3F
你應該試試看 trace(this)
11/04 09:27, 3F
文章代碼(AID): #1Axz5XJu (Flash)