mingyeyishi

自定义上下文菜单

从 InteractiveObject 类进行继承的每个对象可以具有唯一的上下文菜单,用户在 SWF 文件内右键单击时将显示该菜单。默认情况下,菜单中包含几个命令,其中包括“前进” 、“后退” 、 “打印”、 “品质”和 “缩放” 。除了“设置”和“关于”命令外,您可以从菜单中删除所有其它默认命令。如果将 Stage 属性 showDefaultContextMenu 设置为 false,则会从上下文菜单中删除这些命令。要为特定显示对象创建自定义的上下文菜单,请创建 ContextMenu 类的一个新实例,调用hideBuiltInItems() 方法,并将该实例分配给该 DisplayObject 实例的 contextMenu 属性。下面的示例为一个动态绘制的正方形提供了一个上下文菜单命令,用于将其更改为随机颜色:

var square:Sprite = new Sprite();
square.graphics.beginFill(0x000000);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();
square.x = 10;
square.y = 10;
addChild(square);
var menuItem:ContextMenuItem = new ContextMenuItem("Change Color");
menuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,changeColor);
var customContextMenu:ContextMenu = new ContextMenu();
customContextMenu.hideBuiltInItems();
customContextMenu.customItems.push(menuItem);
square.contextMenu = customContextMenu;
function changeColor(event:ContextMenuEvent):void
{
square.transform.colorTransform = getRandomColor();
}
function getRandomColor():ColorTransform
{
return new ColorTransform(Math.random(), Math.random(),Math.random(),1,(Math.random() * 512) - 255,(Math.random() * 512) -255,(Math.random() * 512) - 255, 0);
}


评论

热度(2)