Re: [問題] 用for迴圈指定Array名稱

看板Flash作者 (scars)時間14年前 (2011/05/04 12:26), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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].@txt.toXMLString()); : icon0_link_array.push(items_xml.icon0.children()[j].@link.toXMLString()); : } : 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

05/04 12:29, , 1F
呃...因為我寫程式的程度頂多只到造樣造句@@~
05/04 12:29, 1F

05/04 12:30, , 2F
我研究看看這寫法......謝謝
05/04 12:30, 2F

05/04 12:31, , 3F
這個就上面etrexetrex說的使用二維陣列 裡面存object
05/04 12:31, 3F

05/04 13:11, , 4F
fla 是繼承 MovieClip 所以是 dynamic 可以動態加變數
05/04 13:11, 4F
文章代碼(AID): #1DmDL_40 (Flash)
文章代碼(AID): #1DmDL_40 (Flash)