2012-04-02 8 views
2

Ich habe eine XML-Datei mit einer Liste von Büchern erstellt, Jetzt nach dem Lesen der Datei, ich möchte einen Filmclip auf der Bühne für jedes Buch, das in der Liste ist, ich weiß, wie man ein Kind hinzufügt, aber ich möchte jede Taste anders benennen, wie book1_button, book2_button und so weiter oder so, Wie mache ich das? heres der Code:Schleife, die Childs in Actionscript hinzufügt 3

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

Sie haben 'Name' Eigenschaft für einen MovieClip, richtig? – Subodh

Antwort

3

Es gibt zwei Möglichkeiten, die ich mir vorstellen kann, dieses Problem zu nähern:

1). Erstellen Sie eine Array und speichern Sie alle Buch MovieClip in diesem Array. Wie das geschehen würde, würde aussehen wie dem folgenden Code:

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 
    } 
} 

Und dann ein Buch öffnen würden wir Sie nur bookArray[1] oder bookArray[2] und so weiter verwenden würde ...

2). Benennen Sie jedes Buch anders und verwenden Sie getChildByName("name"). Das Problem damit ist, dass wenn Sie versehentlich versagen und zwei mit dem gleichen Namen haben, Sie in Schwierigkeiten geraten. Aber hier ist, wie es funktionieren würde:

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++;       
    } 
} 

Und dann jedes Buch öffnen würden wir Sie getChildByName("book1") verwenden würden.

Hoffentlich hilft das! Viel Glück.

+1

Ich würde den ersten Ansatz sehr empfehlen. – jhocking

0

Sie können ein Array verwenden, um die Bücher zu speichern, und dann können Sie das Buch über den Array-Index aufrufen (z. B. 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++; 
    } 
}