Цикл, который добавляет childs в Actionscript 3 - PullRequest
2 голосов
/ 02 апреля 2012

Я создал 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 ]

3 голосов
/ 02 апреля 2012

Есть два способа решения этой проблемы:

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").

Надеюсь, это поможет!Удачи.

0 голосов
/ 02 апреля 2012

Вы можете использовать массив для хранения книг, а затем вы можете получить доступ к книге по индексу массива (например, 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++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...