我在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);
}
但不行 有没有想法我该怎么办?
答案 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);
}
}
希望有所帮助