2013-03-18 48 views
1

我正在創建一個使用XML創建按鈕列表的項目。當你按下其中一個按鈕時,會加載一個新的xml,它可以創建「子按鈕」。在AS3中使用MouseEvent.CLICK事件偵聽器卸載xml文件並加載新的xml文件

隨着我寫的代碼,除了當我按下頂級按鈕(第一級按鈕)時,它會加載xml,它創建子按鈕並加載一些文本數據,但當我按另一個頂部它加載新的XML,創建子按鈕,加載不同的文本數據,.......但是,舊的子按鈕也存在....

我希望能夠刪除舊的子按鈕。我GOOGLE了,但我無法得到任何幫助:/任何幫助將不勝感激。

代碼從創建頂級按鈕開始,並將CLICK MouseEvent分配給這些按鈕。

function onButtonClick(me:MouseEvent):void { 
    xmlLoader.load(new URLRequest(bookElement.xmllink.toString())); 
    xmlLoader.addEventListener(Event.COMPLETE, onSubXmlLoad); 
} 

function onSubXmlLoad(e:Event):void { 
    trace("xml loaded"); 
    new_sub_xml = new XML(sub_xmlLoader.data); 
    var Books:XMLList = new_sub_xml.name.books; 
    var len:int = Books.length(); 
    trace(len + " Books"); 

    for (var i:int = 0; i < len; i++) { 
      sub_btn = new SubFeatureButton(); 
      sub_btn.x = 10 + i * 50; 
      sub_btn.y = 90; 
      addChild(sub_btn); 
      sub_btn.name = "sub_btn" + i; 
      sub_btn.buttonMode = true; 
      trace(sub_btn + i); 

    } 
} 

回答

0

你或許應該創建一個容器爲您的子導航按鈕,還保持在某種陣列的會比較好過那些按鈕的引用。

下面的代碼應工作

var subNav:Sprite = new Sprite(); 
subNav.x = 0; 
subNav.y = 0;//put the right values here 
addChild(subNav); 

function onButtonClick(me:MouseEvent):void { 
    xmlLoader.load(new URLRequest(bookElement.xmllink.toString())); 
    xmlLoader.addEventListener(Event.COMPLETE, onSubXmlLoad); 
} 

function onSubXmlLoad(e:Event):void { 
    trace("xml loaded"); 
    new_sub_xml = new XML(sub_xmlLoader.data); 
    var Books:XMLList = new_sub_xml.name.books; 
    var len:int = Books.length(); 
    trace(len + " Books"); 

    while(subNav.numChildren >0) 
    { 
     subNav.removeChildAt(0); 
    } 

    for (var i:int = 0; i < len; i++) { 
      sub_btn = new SubFeatureButton(); 
      sub_btn.x = 10 + i * 50; 
      sub_btn.y = 90; 
      subNav.addChild(sub_btn); 
      sub_btn.name = "sub_btn" + i; 
      sub_btn.buttonMode = true; 
      trace(sub_btn + i); 

    } 
} 
+0

謝謝!有效。我知道我必須在創建新的子按鈕之前刪除舊的子按鈕,我只是不知道如何到達那裏。 除了我必須將'subNav.childNum'更改爲'subNav.numChildren'以外,它完美地工作。再次感謝你的幫助。 – 2013-03-19 05:13:52