我有一个只包含2个动作的PopUpButton。这两个操作彼此完全相反,并将对象上的布尔属性从true切换为false或false切换为true。为了避免冗余,我一次只显示一个动作。因此,如果属性为true,则不会显示将其更改为true的操作。
如果我的PopUp菜单只有一个选项,我想删除显示的菜单,并基本上恢复PopUpButton的行为,看起来像一个常规按钮。到目前为止,我没有在ActionScript中找到一个很好的方法,无需添加,删除或修改按钮的样式。
有没有一种很好的方法可以简单地告诉按钮隐藏PopUp切换?
PS :在我的具体示例中,如果我只使用了切换按钮,则可能会更容易。但是,我想在处理对象数组时重用此按钮。如果我有多个,那么该属性可能同时是真假。在这种情况下,我想显示菜单,以便他们可以选择将所有对象的属性设置为的选项。
答案 0 :(得分:1)
您可以尝试使用State来实现此目的。它将删除多选项弹出按钮并在其位置显示一个新的单选项按钮:
<mx:states>
<mx:State name="singleOptionState">
<mx:AddChild relativeTo="{multiOptionPopUpButton}" position="after">
<mx:Button id="singleOptionButton"
width="80"
label="{buttonLabel}"
click="onClick(event)" />
</mx:AddChild>
<mx:RemoveChild target="{multiOptionPopUpButton}" />
</mx:State>
</mx:states>
当然,名称和属性将特定于您的应用。
当您确定是时候显示单选项按钮时
currentState = "singleOptionState";
当需要显示多选项弹出按钮时,只需执行以下操作:
currentState = "";
希望这会有所帮助。