我怎么能删除孩子?

时间:2012-05-15 20:19:29

标签: actionscript-3 flash

我在XML按钮菜单中遇到了removeChild的问题 即时通过Linkage从库中调用按钮temp 这是我写的代码

        var genButton:butonProba;

    var i:uint = 0;

    for each (var page:XML in generacijeXML.gener.generation) {

        genButton = new butonTest();    

        genButton.butonText.text = page.@name;

        genButton.source = page.source.toString();

        genButton.butonText.autoSize = TextFieldAutoSize.LEFT;

        genButton.x = 16 + i*225;
        genButton.y = -30;

        genButton.buttonMode = true;
        genButton.mouseChildren = false;

        addChild(genButton);

        i++;
}

一切正常.....

现在,当我点击它时我想再制作1个按钮我想删除之前调用的所有xml按钮

我试着像这样简单

close.addEventListener(MouseEvent.CLICK, closed);

  function closed(event:Event):void {
  genButton.removeChild(0);
}

和这个

close.addEventListener(MouseEvent.CLICK, closed);

  function closed(event:Event):void {
  removeChild(genButton);
}

但不行 有没有想法我该怎么办?

1 个答案:

答案 0 :(得分:0)

我会在一个容器中添加所有按钮。将容器创建为实例成员,并将其添加到构造函数或init方法中的阶段:

 public var buttonContainer:Sprite = new Sprite();
 addChild(buttonContainer);

在你的循环中,将所有创建的按钮添加到此容器中:

 ...
 genButton.buttonMode = true;
 genButton.mouseChildren = false;

 buttonContainer.addChild(genButton);

 i++;
单击处理程序中的

从容器中删除所有子项:

 close.addEventListener(MouseEvent.CLICK, closed);

 function closed(event:Event):void {
     while(buttonContainer.numChildren > 0 )
     {
          buttonContainer.removeChildAt(0);
     }
 }

希望有所帮助