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 クラスが必要です (これは初心者には難しい方法です)。

注: 私は Web ページにコードを書きましたが、間違いがあるかもしれませんが、これが正しい方法です。

于 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 (配列の長さ) まで続きます。変数 i は、配列内の現在のインデックスを表します。i + 1 は、対応するテキスト フィールドのように見えます

于 2012-05-02T22:45:53.010 に答える