0

我是 actionscript 的新手,想以 for 循环样式编写以下代码。它是从 xml 文件加载的菜单

nav_menu.nav_1.text=gallery_xml.gallery[0].@name;
nav_menu.nav_2.text=gallery_xml.gallery[1].@name;
nav_menu.nav_3.text=gallery_xml.gallery[2].@name;
nav_menu.nav_4.text=gallery_xml.gallery[3].@name;
nav_menu.nav_5.text=gallery_xml.gallery[4].@name;
nav_menu.nav_6.text=gallery_xml.gallery[5].@name;
nav_menu.nav_7.text=gallery_xml.gallery[6].@name;

我试着写成一个数组。数组的追踪结果是对的。但我不知道如何将数组放入动态文本框...

非常感谢您的帮助。

4

2 回答 2

1

像 belove 一样首先使用 XMLList 类。

var list:XMLList = gallery_xml.gallery;

在那之后,当你让它成为一个循环时,试着动态地制作菜单项。您应该根据需要调整菜单位置。

var nav_menu:Sprite = new Sprite();
addChild(nav_menu);
var navItem:Array = [];

var forX:Number = 0;
for(var i:int = 0; i < list.length(); i++){
   navItem[i] = new NavItem();
   navItem[i].tx_txt.autoSize = TextFieldAutoSize.LEFT;
   navItem[i].tx_txt.text = list[i].@name;
   navItem[i].x = forX;
   forX += navItem[i].width + 20; //(horizontal order with 20px space)
   nav_menu.addChild(navItem[i]);
}

您应该在库中有一个带有 tx_txt 字段的 NavItem,或者一个 NavItem 类(这对初学者来说很难)。

注意:我在网页中编写了代码,它可能有错误,但这是要走的路。

于 2012-05-02T23:27:00.090 回答
0

我认为你正在寻找一个 for 循环尝试这样的事情,假设画廊实际上是一个数组。

for(var i:int = 0 ; i < gallery_xml.gallery.length ; i++){
     var menuText:int = i + 1; //since it looks like your nav_ text fields are not 0 indexed
     nav_menu['nav_' + menuText].text = gallery_xml.gallery[i].@name;
}

这将从您的图库数组中的 0 开始,一直持续到 6(您的数组长度)。var i 将表示数组中的当前索引。i + 1 看起来是相应的文本字段

于 2012-05-02T22:45:53.010 回答