作者lm76731 (小M)
看板Flash
标题[问题] 侦听事件中的变数传递
时间Tue Nov 3 14:44:47 2009
对不起~ 标题打得有点怪怪的
因为敝人是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
1F:推 scars:你可以稍微描述一下你想做什麽事吗 这样看不太懂说 11/03 14:57
2F:推 etrexetrex:是在HO function 中的 this 跟外面的 this 不是同一个 11/04 09:27
3F:→ etrexetrex:你应该试试看 trace(this) 11/04 09:27