本地菜单<o:p></o:p>
Native Menu API 提供了创建程序,窗口,上下文菜单和弹出式菜单的相关类。<o:p></o:p>
<o:p></o:p>
AIR 菜单概要 <o:p></o:p>
native menu类运行程序访问到操作系统的本地菜单特性。NativeMenu对象用于创建应用程序菜单(OSX系统可用),window menus (Windows系统可用), 上下文菜单和弹出式菜单。<o:p></o:p>
菜单的类型<o:p></o:p>
<o:p></o:p>
AIR支持一下类型的菜单:<o:p></o:p>
应用程序菜单<o:p></o:p>
应用程序菜单必须通过Shell类访问,在Mac OS X,系统上应用程序菜单由操作系统自动提供。应用程序使用这些AIR菜单API添加菜单项和子菜单到标准菜单上并注册处理函数,当然你也可以完全替换掉标准菜单。<o:p></o:p>
<o:p></o:p>
窗体菜单<o:p></o:p>
通过创建NativeMenu对象,然后赋值给NativeWindow.menu属性来添加窗体菜单。Windows操作系统支持窗体菜单,但是Mac OS X不可以。<o:p></o:p>
<o:p></o:p>
上下文菜单<o:p></o:p>
上下文菜单被添加到HTMLControl组件的交互对象和文档元素上。最典型的例子就是在HTML元素上使用Webkit API,当然也可以直接在HTMLControl上使用上下文菜单。<o:p></o:p>
<o:p></o:p>
系统托盘菜单<o:p></o:p>
通过创建NativeMenu对象并赋值给Shell.shell.icon.menu属性来创建系统托盘菜单。<o:p></o:p>
<o:p></o:p>
Flex 菜单<o:p></o:p>
Flex framework提供了一组Flex菜单类。这些Flex菜单类不需要窗体继承系统窗体风格即可使用而且还可在MXML格式中声明。如果你使用Flex Framework,这时就可以用Flex菜单类来代替本地菜单类了。<o:p></o:p>
<o:p></o:p>
自定义菜单<o:p></o:p>
本地菜单是在Flash和HTML渲染模型之外由操作系统负责绘制的,当然我们也可以自己绘制自己的非本地菜单,不过遗憾的是目前AIR菜单类还不支持“自绘制”菜单。<o:p></o:p>
<o:p></o:p>
菜单结构 <o:p></o:p>
<o:p></o:p>
一个菜单包含一个或多个菜单项。一个菜单项可以是一个命令,一个子菜单,或一个分隔符,一般情况下,一个菜单项就是一个命令,如果菜单项的submenu属性被赋值为NativeMenu对象则变为子菜单,如果菜单项构造函数的isSeparator参数为true,则变为分隔符。<o:p></o:p>
最顶层的菜单项显示在菜单栏上,其他子菜单添加在应用程序和窗体菜单的顶层菜单中(虽然有些操作系统可以直接把菜单项放在菜单栏上,这样看起来好像很不符合常规)。<o:p></o:p>
下面的图标演示典型的菜单结构。根菜单包含子菜单“File”和“Edit”。"File"菜单包含两个命令和一个子菜单(用于显示最近打开的文档,它也是一个子菜单,包含三个菜单项)。"Edit"菜单包含三个命令和一个分隔符。<o:p></o:p>
<o:p></o:p>
菜单事件<o:p></o:p>
<o:p></o:p>
菜单和菜单项都可以发出displaying 和 select事件:<o:p></o:p>
Displaying: <o:p></o:p>
在菜单即将被显示之前,菜单及其子菜单会发出displaying事件通知其注册的监听器。Displaying事件给你一个机会来更新菜单内容或菜单项状态。例如在"Open Recent"菜单项的displaying处理函数可以改变反应当前阅读过的文档菜单项。<o:p></o:p>
<o:p></o:p>
Event对象的target属性指向被显示的菜单,currentTarget 则是被注册监听器监听的对象,既可以是菜单本身,也可以是其菜单项。<o:p></o:p>
Select: <o:p></o:p>
当用户点击命令项时,该命令项会发出一个select事件给注册的监听器,不过子菜单和分隔符不能被选择也不会发出select事件。<o:p></o:p>
<o:p></o:p>
菜单项的Select事件会一直往上传递到顶层菜单,所以你可以直接在菜单项上监听也可以在菜单结构的上层的监听。当监听select事件时,需要通过event的target属性确定是哪个菜单项触发了事件,而currentTarget 属性可以确定当前的菜单对象。<o:p></o:p>
快捷键<o:p></o:p>
<o:p></o:p>
快捷键是菜单上操作系统键盘的一部分功能。无论是Mac OS X还是Windows 系统都允许用户用键盘打开或选择某个菜单命令项.<o:p></o:p>
用字符串的索引指定快捷字符,字符串的第一个字母索引值为“0”。这样如果把“Format”字符串的“r“字母作为快捷字符,应设置其索引值mnemonicIndex属性为2。<o:p></o:p>
var item:NativeMenuItem = new NativeMenuItem("Format"); <o:p></o:p>
item.mnemonicIndex = 2; <o:p></o:p>
<o:p></o:p>
菜单项状态<o:p></o:p>
<o:p></o:p>
菜单项有两个状态属性,checked 和enabled:<o:p></o:p>
checked <o:p></o:p>
设置为true会在菜单项字符前加上标志<o:p></o:p>
<o:p></o:p>
var item:NativeMenuItem = new NativeMenuItem("Format"); <o:p></o:p>
item.checked = true; <o:p></o:p>
<o:p></o:p>
enabled <o:p></o:p>
设置菜单项是否可用<o:p></o:p>
<o:p></o:p>
var item:NativeMenuItem = new NativeMenuItem("Format"); <o:p></o:p>
item.enabled = false; <o:p></o:p>
<o:p></o:p>
关联对象到菜单项<o:p></o:p>
<o:p></o:p>
NativeMenuItem 类的data属性允许与任意类型的对象相关联。例如"Open Recent"菜单中,你可以赋值一个File对象到菜单项上:<o:p></o:p>
var file:File = new File("app-storage:/GreatGatsby.pdf"); <o:p></o:p>
var menuItem:NativeMenuItem = docMenu.addItem(new NativeMenuItem(file.name)); <o:p></o:p>
menuItem.data = file; <o:p></o:p>
<o:p></o:p>
分享到:
相关推荐
CAM350是一款广泛应用于PCB(印刷电路板)设计和制造行业的计算机辅助制造软件。它的版本10.7是其历史上的一个...对于那些习惯于英文界面或者需要处理GERBER文件的专业人士来说,这是一个非常实用的本地化解决方案。
1. **下载与解压**:首先,从可靠来源下载MyEclipse 10.7的汉化包文件,然后将其解压缩到本地文件夹。 2. **备份原始文件**:为了防止意外情况,最好先备份MyEclipse安装目录下的相关配置和语言文件。 3. **替换...
【MyEclipse 10.7 汉化】是一个针对这款知名Java集成开发环境(IDE)的本地化工作,旨在为用户提供中文界面,便于中国用户更流畅地使用和理解软件的各项功能。MyEclipse是基于Eclipse平台的扩展,增加了对Java、Web...
- **添加文件到暂存区**:`Team` -> `Add to Index`,或者直接使用右键菜单。 - **提交**:`Team` -> `Commit...`,填写提交信息后保存。 - **推送**:确保本地提交后,`Team` -> `Push to Upstream`。 - **拉取...
标题中的“10.7汉化单文件”表明这是一份经过中文本地化的版本,方便中国用户理解和操作,而且是一个独立的执行文件,无需安装,下载后即可运行。 在描述中提到,“使用时请注意,文件名长度有限制,过长会报停止...
8. **国际化与本地化(Internationalization & Localization)** - 支持多语言应用的开发,提供便捷的本地化工具和资源管理。 9. **数据绑定(Data Binding)** - 与Delphi的数据绑定框架紧密集成,简化了控件与...
通过创建中央仓库,开发者可以在本地工作副本上进行修改,然后将这些更改推送到仓库,同时也能从仓库拉取其他人的最新改动。 MyEclipse集成SVN插件后,用户无需离开IDE就能执行常见的SVN操作。例如,可以通过以下...
4. 使用插件:现在你可以右键点击项目,选择“Team”菜单,看到诸如“Share Project”(共享项目)、“Commit”(提交)、“Update”(更新)等SVN操作,开始你的版本控制之旅。 在实际使用过程中,有几个关键的SVN...
- 在"工作区"(Work with)字段旁点击"添加"(Add),选择"本地"(Local)选项,找到并定位到已下载的插件文件位置,点击"确定"。 - 选中列出的插件,按照提示进行安装并重启IDE完成安装。 5. **使用SVN插件进行...
4. **添加数据**:点击菜单栏上的“添加数据”按钮,弹出文件选择对话框。导航到你的“动态资源文件夹”,找到要加载的TIFF文件,选中它并点击“添加”。 5. **TIFF文件设置**:添加后,TIFF文件会以图层的形式出现...
它适用于Linux、Mac OS X(10.7或更高版本)以及Windows(Vista或更高版本)操作系统。作为一款分布式版本控制系统(DVCS),Git和Mercurial为用户提供了灵活且高效的代码管理方案。 - **安装**: 用户可以根据自己...
可以选择任意本地文件夹作为共享文件夹。 - 如果希望共享文件夹仅支持只读访问,则勾选“Read-only”复选框。 3. **管理共享文件夹** - 除了添加新的共享文件夹外,还可以通过点击“Remove”按钮来移除不再需要...
10.2 本地样式设定 223 10.2.1 直接设定组件的样式属性 223 10.2.2 通过mx:Styles设定组件样式 225 10.3 通过样式管理类设定样式 226 10.3.1 样式管理类简介 227 10.3.2 样式管理类设定样式的实例 227 ...
- 在ArcCatalog中,选择一个本地目录,右键点击并选择“新建” -> “创建个人地理数据库(personal GeoDatabase)”。 3. **创建数据集:** - 选择刚创建的个人地理数据库,右键点击并选择“新建” -> “数据集...
由于MyEclipse的10.7版本可能太旧,无法成功搭建Git仓库,所以文档中提供了一个解决方案,并建议使用与MyEclipse相似的Eclipse环境。首先,需要检查Eclipse的版本,可以通过点击Help菜单下的Installation Details来...
7. **工作副本管理**:管理本地工作副本的状态,如标记为忽略、暂存等。 8. **权限管理**:通过SVN服务器,管理员可以设定用户和组的访问权限,控制对仓库的访问。 在安装此插件后,用户可以通过MyEclipse的“Team...
10.7 管理网络和Wi-Fi连接 10.7.1 监控和管理Internet连接 10.7.2 管理活动的连接 10.7.3 管理你的Wi-Fi 10.8 控制设备震动 10.9 小结 第11章 Android高级开发 11.1 Android的安全性 11.1.1 Linux内核安全 11.1.2 ...
- 双击桌面上的TortoiseSVN图标,或从“开始”菜单中选择“TortoiseSVN > Repository Browser”。 2. **输入SVN URL地址**: - 在弹出的窗口中输入SVN仓库的URL地址,例如:`...