2012-04-02 6 views
2

書籍のリストを持つXMLファイルを作成しました ファイルを読み込んだ後、リストにあるすべての書籍のムービークリップをステージに追加します。 子を追加する方法を知っていますが、book1_button、book2_buttonなどのように各ボタンの名前を別にしたいのですが、 どうすればいいですか? をHERESコード:Actionscript 3の子を追加するループ

この問題にアプローチする私は考えることができる2つの方法があります
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

MovieClipの '名前'プロパティはありますか? – Subodh

答えて

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")を使用します。この問題は、間違って同じ名前の2つを持っている場合、あなたはいくつかの問題に遭遇するでしょう。

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

私は最初のアプローチを強く提案します。 – jhocking

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++; 
    } 
} 
関連する問題