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

看板Flash作者 (日光貓....^o.o^)時間14年前 (2011/05/04 10:16), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/3 (看更多)
剛剛有查找文章過了,還是無解@@~ 我試著把下面這一串: 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 之前必須有分號。 請問我是哪裡做錯了呢?正確寫法為何? -- U.Design 網頁設計作品集 http://unas.com.tw/U_Design/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.122.111

05/04 10:16, , 1F
是AS3.0
05/04 10:16, 1F

05/04 10:55, , 2F
"var"和":Array"不用寫
05/04 10:55, 2F
可是我後面要叫來用的時候...就會告訴我: 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()); } 原始檔:http://dl.dropbox.com/u/9655383/banner.fla 原本的:http://dl.dropbox.com/u/9655383/header.zip 因應客戶要求,要把原本的jquery menu改成flash menu, 我試著想用xml載入選單名稱和連結…但似乎很難達成, 還有人跟我講用xml載入的文字會因為語系而亂碼,載入的連結若有含問號會有問題… 明天就要交件了,最白癡的做法就是做死的menu吧……但實在有夠不甘心的啦>"< ※ 編輯: Isacat 來自: 114.46.122.111 (05/04 11:23)

05/04 12:03, , 3F
叫來用要寫this["icon0_txt_array"]
05/04 12:03, 3F

05/04 12:03, , 4F
這種用法叫做associative array,可以去查查相關資料
05/04 12:03, 4F

05/04 12:03, , 5F
Essential ActionScript 3.0裡面也有寫
05/04 12:03, 5F

05/04 12:10, , 6F
他想要做的是用迴圈宣告變數
05/04 12:10, 6F

05/04 12:10, , 7F
正確的解法應該是宣告二維陣列
05/04 12:10, 7F
呃...改寫成以下這樣,目前是沒有錯誤跟警告啦 for (var j:int = 0; j<6; j++) { for (var k:int = 0; k<items_xml["icon"+j].children().length(); k++) { this["icon"+j+"_txt_array"].push(items_xml["icon"+j].children()[k].@txt.toXMLString()); this["icon"+j+"_link_array"].push(items_xml["icon"+j].children()[k].@link.toXMLString()); } } 不確定有沒有正確抓到就是了...繼續改看看@@~多謝回覆。 ※ 編輯: Isacat 來自: 114.46.122.111 (05/04 12:24) ※ 編輯: Isacat 來自: 114.46.122.111 (05/04 12:28)
文章代碼(AID): #1DmBR-jI (Flash)
文章代碼(AID): #1DmBR-jI (Flash)