作者scars (scars)
看板Flash
标题Re: [问题] 用for回圈指定Array名称
时间Wed May 4 12:26:36 2011
※ 引述《Isacat (日光猫....^o.o^)》之铭言:
: 我试着把下面这一串:
: var icon0_txt_array:Array = new Array();
: var icon0_link_array:Array = new Array();
: var icon1_txt_array:Array = new Array();
: var icon1_link_array:Array = new Array();
: var icon2_txt_array:Array = new Array();
: var icon2_link_array:Array = new Array();
:
: 改写为:
: for (var k:int = 0; k<2; k++) {
: var this["icon"+k+"_txt_array"]:Array = new Array();
: var this["icon"+k+"_link_array"]:Array = new Array();
: }
: 看之前其他人提问的解答,似乎是[XXX]改成this[XXX]即可解,
: 但我试着也照样画葫芦,结果仍告诉我:
: 1084: 语法错误:identifier 必须在 this 之前。
: 1086: 语法错误:plus 之前必须有分号。
:
: 推 cjcat2266:"var"和":Array"不用写 05/04 10:55
: 可是我後面要叫来用的时候...就会告诉我:
: 1120: 存取未定义的属性 icon0_txt_array。
: 1120: 存取未定义的属性 icon0_link_array。
:
: 要叫来用的语法:
: for (var j:int = 0; j<items_xml.icon0.children().length(); j++){
: icon0_txt_array.push(items_xml.icon0.children()[j][email protected]());
: icon0_link_array.push(items_xml.icon0.children()[j][email protected]());
: }
:
this[xxx]是让你找到已经存在的属性ref,他的用法不是 var this[xxx]
再来他不能无中生有,除非你的class是dynamic
不过看来你是写在fla里面,所以这办法也不适用
然後
为什麽要用 iconX_txt_array 之类的来存这些东西呢
还特地分成txt跟link两个来徒增烦恼
从宣告到存值,5行就可以达成需求。存值还可以不用写三遍
var icons:Array=new Array()
for(var i:int=0; i<3; i++){
icons[i]=new Array();
for each(var k:XML in items_xml["icon"+j].children()){
icons[i].push({txt:String(k.@txt),link:String(k.@link)});
}
}
trace(icons[0][0].txt,icons[0][0].link);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.42.87
1F:推 Isacat:呃...因为我写程式的程度顶多只到造样造句@@~ 05/04 12:29
2F:→ Isacat:我研究看看这写法......谢谢 05/04 12:30
3F:→ scars:这个就上面etrexetrex说的使用二维阵列 里面存object 05/04 12:31
4F:推 etrexetrex:fla 是继承 MovieClip 所以是 dynamic 可以动态加变数 05/04 13:11