当用户右键单击按钮时,将显示“删除”上下文菜单项。如果用户单击“删除”选项,则应从其“平铺”父容器中删除该按钮。我如何使用Flex 3和ActionScript 3实现这一点?
答案 0 :(得分:1)
您需要创建一个自定义flash.ui.ContextMenu,其中添加了与您希望用户选择的删除文字相对应的ContextMenuItem。
向此ContextMenuItem
添加一个事件监听器,该监听器将处理删除所点击的项目。以下是实现删除的一种方法:
private function removeItemHandler(event:ContextMenuEvent):void
{
((event.mouseTarget as DisplayObject).parent as DisplayObjectContainer).removeChild((event.mouseTarget as DisplayObject));
Alert.show((event.mouseTarget.toString() + " has been removed."),"Display Object Removed");
}
最后,请务必将要删除的所有组件(contextMenu)的InteractiveObject属性设置为您创建的自定义ContextMenu
。
注意强>
上面的代码对应于Flex 3,因为问题指明了。对于Flex 4,可以使用IVisualElement
,IVisualElementContainer
和removeElement
方法代替DisplayObject
,DisplayObjectContainer
和removeChild
方法,分别。