我正在尝试在运行时在预定义的组中创建一些组。我可以组团,代码工作正常。现在我在运行时创建的每个组中添加了两个按钮。现在的问题是按钮之一是x。按钮的属性应该是当我点击它时它应该删除它所在的特定组。请查看代码并告诉我应该添加哪些内容。
public var n:Number = 0;
protected function remover (event:MouseEvent):void
{
}
protected function settings(g:Group):void
{
((DisplayObject)(g)).width = "200";
((DisplayObject)(g)).height = "140";
((DisplayObject)(g)).x = "200" ;
((DisplayObject)(g)).y = "200";
var s:String;
s = "NewGroup"+ "X"+ n.toString;
var mybutton1:Button = new Button();
mybutton1.id = s;
mybutton1.label ="X";
mybutton1.addEventListener(MouseEvent.CLICK, remover);
g.addElement(mybutton1);
// setting1(mybutton1);
n++;
}
public function addGroup(event:MouseEvent): void
{
var s:String;
n = n+1;
s = "NewGroup"+ "_"+ n.toString;
var myGroup:Group = new Group();
myGroup.id = s;
main.addElement(myGroup);
// setElementIndex(myGroup, n);
settings(myGroup);
}
]]>
</fx:Script>
<s:Button x="422" id="wow" y="139" label="Add Group" click="addGroup(event)"/>
<s:HGroup id="main" x="6" y="168" width="750" height="490">
</s:HGroup>
答案 0 :(得分:2)
这应该有效:
protected function remover(event:MouseEvent):void
{
main.removeElement(Group(Button(event.currentTarget).parent));
}
答案 1 :(得分:1)
您需要使用DataGroup来创建ItemRenderers(您的组),其中包含一个按钮。一切都基于您管理的数据集合(如ArrayCollection)。它使一切变得更容易,因为如果将ArrayCollection绑定到DataGroup的dataProvider属性并从集合中删除项目,DataGroup将自动更新并删除显示项目。