在Actionscript 3中添加子项的循环

时间:2012-04-02 14:18:54

标签: xml arrays actionscript-3 actionscript

我创建了一个包含书籍列表的XML文件, 在阅读完文件之后,我想在舞台上为列表中的每本书添加一个动画片段, 我知道如何添加一个孩子,但我想以不同的方式命名每个按钮,比如book1_button,book2_button等等, 我怎么做?  继承人代码:

function createChilds():void{
    var i:Number = 1;
    //For loop that iterates through all of the books in the XML file
    for each (var bookID:XML in booksList) {

        var bookButton:MovieClip = new book_btn;
        this.addChild(bookButton);

        i++;
    }
}

2 个答案:

答案 0 :(得分:3)

我可以通过两种方式来解决这个问题:

1)。创建Array并将所有图书MovieClip存储在Array中。如何做到如下代码:

var bookArray:Array = [];
function createChilds():void{

    //For loop that iterates through all of the books in the XML file 
    for each (var bookID:XML in booksList) { 

        var bookButton:MovieClip = new book_btn; 
        this.addChild(bookButton); 
        bookArray.push(bookButton);    // Add to the array
    } 
} 

然后要访问一本书,您只需使用bookArray[1]bookArray[2]等等......

2)。将每本书命名为不同的名称并使用getChildByName("name")。这样做的问题是,如果你意外地搞砸了并且有两个同名的话,你会遇到麻烦。但这是如何运作的:

function createChilds():void{ 
    var i:Number = 1; 
    //For loop that iterates through all of the books in the XML file 
    for each (var bookID:XML in booksList) { 

        var bookButton:MovieClip = new book_btn; 
        this.addChild(bookButton); 
        bookButton.name = "book"+i.toString();      // Name the book based on i
        i++;                        
    } 
} 

然后访问您将使用的每本书getChildByName("book1")

希望这有帮助!祝你好运。

答案 1 :(得分:0)

您可以使用数组来存储图书,然后您可以按数组索引访问图书(例如bookArray [3])。

var bookArray:Array = [];

function createChilds():void{
    var i:Number = 1;
    //For loop that iterates through all of the books in the XML file
    for each (var bookID:XML in booksList) {
        var bookButton:MovieClip = new book_btn;
        this.addChild(bookButton);
        bookArray.push(bookButton);
        i++;
    }
}