问题描述
||
用户右键单击按钮时,将显示一个“删除”上下文菜单项。如果用户单击\“ Remove \”选项,则应从其Tile父容器中删除该按钮。如何使用Flex 3和ActionScript 3来实现这一点?
解决方法
您需要创建一个自定义flash.ui.ContextMenu,向其中添加一个与要用户选择的Remove文本相对应的ContextMenuItem。
将事件侦听器添加到此“ 0”,它将处理删除单击的项目。这是实施删除的一种方法:
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\");
}
最后,确保将要删除的所有组件(InteractiveObject \)的contextMenu属性设置为创建的自定义“ 2”。
注意
上面的代码对应于Flex 3,因为问题已指定。对于Flex 4,将分别使用IVisualElement
,IVisualElementContainer
和removeElement
方法来代替DisplayObject
,DisplayObjectContainer
和removeChild
方法。