-1

我对 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);
}

但不工作任何人知道我该怎么做???

4

1 回答 1

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);
     }
 }

希望有帮助

于 2012-05-15T20:38:19.870 回答