5.12.为List创建右键菜单
5.12.1.问题
当用户在特定的条目上右键单击或按住Control 键并单击(在Macintosh 中译者注)时创建一个定制上下文菜单项来显示
5.12.2.解决方法
创建ContextMenu 和ContextMenuItem 对象并分派它们到渲染器,它们将像itemRenderer一样被分派到列表.
5.12.3.讨论
上下文菜单项是用户在flex 应用程序上右键单击或按住Control 键并单击以后出现的,默认情况下,菜单显示像flashplayer9 屏幕信息链接一样的Loop, Play, Print, Quality, Rewind,Save, 和Zoom 控制。但是你可以创建一个新的ContextMenu 对象从而很容易地定制这个菜单.简单地调用ContextMenu 的构造函数并设置contextMenu 属性的对象为创建好的显示对象,如下所示:
这段代码需要在DisplayObject 上运行,也就是说,任何显示对象。用户在DisplayObject或组件上右键单击或按住Control 键并单击时被创建的定制上下文菜单项才会显示设置好的contentMenu 属性。
使用由ContextMenu 定义的customItems 数组,为上下文菜单项添加新的项。实例化新的ContextMenuItem 对象并使用push 方法将它们添加到数组。
ContextMenuItem 的构告函数具有如下信息。
Caption 属性决定了菜单项的标题如,查询职工信息,separatorBefore 属性决定了是否需要一条细线出现在菜单中的ContextMenuItem 上以区分菜单项。最终情况下,visible 和enabled 属性决定各个条目是否是用户可见和可选的.
当用户选择该条目时ContextMenuItem 发出一个SELECT 类型的ContextMenuEvent 事件。
下面例子为List 控件创建了一个渲染器并基于List 传入的数据类型来创建上下文菜单项。
当用户在特定的条目上右键单击或按住Control 键并单击(在Macintosh 中译者注)时创建一个定制上下文菜单项来显示
5.12.2.解决方法
创建ContextMenu 和ContextMenuItem 对象并分派它们到渲染器,它们将像itemRenderer一样被分派到列表.
5.12.3.讨论
上下文菜单项是用户在flex 应用程序上右键单击或按住Control 键并单击以后出现的,默认情况下,菜单显示像flashplayer9 屏幕信息链接一样的Loop, Play, Print, Quality, Rewind,Save, 和Zoom 控制。但是你可以创建一个新的ContextMenu 对象从而很容易地定制这个菜单.简单地调用ContextMenu 的构造函数并设置contextMenu 属性的对象为创建好的显示对象,如下所示:
+展开
-ActionScript
var menu:ContentMenu = new ContextMenu();
this.contextMenu = menu;
this.contextMenu = menu;
这段代码需要在DisplayObject 上运行,也就是说,任何显示对象。用户在DisplayObject或组件上右键单击或按住Control 键并单击时被创建的定制上下文菜单项才会显示设置好的contentMenu 属性。
使用由ContextMenu 定义的customItems 数组,为上下文菜单项添加新的项。实例化新的ContextMenuItem 对象并使用push 方法将它们添加到数组。
ContextMenuItem 的构告函数具有如下信息。
+展开
-ActionScript
ContextMenuItem(caption:String, separatorBefore:Boolean = false, enabled:Boolean = true,visible:Boolean = true)
Caption 属性决定了菜单项的标题如,查询职工信息,separatorBefore 属性决定了是否需要一条细线出现在菜单中的ContextMenuItem 上以区分菜单项。最终情况下,visible 和enabled 属性决定各个条目是否是用户可见和可选的.
当用户选择该条目时ContextMenuItem 发出一个SELECT 类型的ContextMenuEvent 事件。
下面例子为List 控件创建了一个渲染器并基于List 传入的数据类型来创建上下文菜单项。
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="150" height="80" paddingLeft="10">
<mx:Script>
<![CDATA[
import flash.display.*;
override public function set data(value:Object):void {
if (value is Name) {
text1.text = value.firstName;
text2.text = value.lastName;
var personMenu:ContextMenu = new ContextMenu();
var lookupRecord:ContextMenuItem = new ContextMenuItem("Look Up Record" );
var lookupPicture:ContextMenuItem = new ContextMenuItem("Look Up Picture" );
personMenu.customItems.push(lookupRecord);
personMenu.customItems.push(lookupPicture);
this.contextMenu = personMenu;
}
else if (value is Office) {
text1.text = value.officeAddress;
text2.text = value.officeName;
var officeMenu:ContextMenu = newContextMenu();
var lookupMap:ContextMenuItem =new ContextMenuItem("Look Up Map");
lookupMap.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,showMap);
var lookupEmployees:ContextMenuItem =new ContextMenuItem("Look Up Employees");
lookupEmployees.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, showEmployees);
officeMenu.customItems.push(lookupEmployees);
officeMenu.customItems.push(lookupMap);
this.contextMenu = officeMenu;
}
}
private function showMap(event:ContextMenuEvent):void {
//do something with the map
}
private function showEmployees(event:ContextMenuEvent):void {
//do something to look up all the employees
}
]]>
</mx:Script>
<mx:Text id="text1"/>
<mx:Text id="text2"/>
</mx:VBox>
<mx:Script>
<![CDATA[
import flash.display.*;
override public function set data(value:Object):void {
if (value is Name) {
text1.text = value.firstName;
text2.text = value.lastName;
var personMenu:ContextMenu = new ContextMenu();
var lookupRecord:ContextMenuItem = new ContextMenuItem("Look Up Record" );
var lookupPicture:ContextMenuItem = new ContextMenuItem("Look Up Picture" );
personMenu.customItems.push(lookupRecord);
personMenu.customItems.push(lookupPicture);
this.contextMenu = personMenu;
}
else if (value is Office) {
text1.text = value.officeAddress;
text2.text = value.officeName;
var officeMenu:ContextMenu = newContextMenu();
var lookupMap:ContextMenuItem =new ContextMenuItem("Look Up Map");
lookupMap.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,showMap);
var lookupEmployees:ContextMenuItem =new ContextMenuItem("Look Up Employees");
lookupEmployees.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, showEmployees);
officeMenu.customItems.push(lookupEmployees);
officeMenu.customItems.push(lookupMap);
this.contextMenu = officeMenu;
}
}
private function showMap(event:ContextMenuEvent):void {
//do something with the map
}
private function showEmployees(event:ContextMenuEvent):void {
//do something to look up all the employees
}
]]>
</mx:Script>
<mx:Text id="text1"/>
<mx:Text id="text2"/>
</mx:VBox>
加支付宝好友偷能量挖...