2009-10-15 53 views
0

我已經根據XML列表創建了一定數量的MC,並且每個都使用XML中指定的屬性/ ID進行分配。我現在試圖追溯分配的MC屬性的父母,我怎麼能這樣做?獲取XML分配的MC屬性

的XML:

<MEMBER NAME="Todd" ID="001"> 
     <MEMBER NAME="Popia" ID="003"> 
     </MEMBER> 
     <MEMBER NAME="Popia2" ID="004"> 
      <MEMBER NAME="Awesome" ID="005"> 
      </MEMBER> 
     </MEMBER> 
</MEMBER> 

而且here'es動作腳本

private function Members():void { 

     //trace(myXML.children().attribute("ID")); 

     xmlList=myXML.children(); 

     for each (myXML in xmlList) { 

      circles.x=Math.floor(Math.random()*100)-50; 
      circles.y=Math.floor(Math.random()*100)-50; 

      circles.buttonMode=true; 
      circles.addEventListener(MouseEvent.CLICK, clickTarget); 

      addChild(circles); 
      circles.name=myXML.attribute("ID"); 
     } 
    } 



    private function clickTarget(event:MouseEvent):void { 
     //trace(event.target.name); 
     //trace(event.target.parent().attribute("ID")); 
//trying to trace previous assgined att MC position 
     trace("click"); 
    } 

回答

0

你正在改變在for each循環的每次迭代的同一對象(即圓)。你可能想改變它。

event.target.name將跟蹤圓對象的名稱。獲取其父母的名字,trace(event.target.parent.name)

好的做法是將event.target轉換爲MovieClip並將其存儲在局部變量中。這樣你將得到代碼提示(至少在flex builder中)和編譯器的類型檢查。

0

您必須製作一個循環,通過您的XML僱主並將您的新動畫片段附加到正確的位置,此時您直接將舞臺界面添加到舞臺上,而不是按照XML的順序排列。 您還需要創建一個圓圈=新的Class()調用來創建一個新對象