2013-03-18 50 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