我创建了一个包含书籍列表的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++;
}
}
答案 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++;
}
}