`
lixinye0123
  • 浏览: 329935 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

10.7 本地菜单

阅读更多

本地菜单<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>

 
分享到:
评论

相关推荐

    CAM350V10.7中文增强版

    CAM350是一款广泛应用于PCB(印刷电路板)设计和制造行业的计算机辅助制造软件。它的版本10.7是其历史上的一个...对于那些习惯于英文界面或者需要处理GERBER文件的专业人士来说,这是一个非常实用的本地化解决方案。

    myeclipse 10.7汉化包

    1. **下载与解压**:首先,从可靠来源下载MyEclipse 10.7的汉化包文件,然后将其解压缩到本地文件夹。 2. **备份原始文件**:为了防止意外情况,最好先备份MyEclipse安装目录下的相关配置和语言文件。 3. **替换...

    MyEclipse 10.7 汉化

    【MyEclipse 10.7 汉化】是一个针对这款知名Java集成开发环境(IDE)的本地化工作,旨在为用户提供中文界面,便于中国用户更流畅地使用和理解软件的各项功能。MyEclipse是基于Eclipse平台的扩展,增加了对Java、Web...

    MyEclipse10.7的git文件

    - **添加文件到暂存区**:`Team` -&gt; `Add to Index`,或者直接使用右键菜单。 - **提交**:`Team` -&gt; `Commit...`,填写提交信息后保存。 - **推送**:确保本地提交后,`Team` -&gt; `Push to Upstream`。 - **拉取...

    CAM350 10.7汉化单文件

    标题中的“10.7汉化单文件”表明这是一份经过中文本地化的版本,方便中国用户理解和操作,而且是一个独立的执行文件,无需安装,下载后即可运行。 在描述中提到,“使用时请注意,文件名长度有限制,过长会报停止...

    TMS VCL UI Pack (原TMS Component Pack) 组件 10.7.0.0 DelphiXE7-11

    8. **国际化与本地化(Internationalization & Localization)** - 支持多语言应用的开发,提供便捷的本地化工具和资源管理。 9. **数据绑定(Data Binding)** - 与Delphi的数据绑定框架紧密集成,简化了控件与...

    MyEclipse10.7_SVN

    通过创建中央仓库,开发者可以在本地工作副本上进行修改,然后将这些更改推送到仓库,同时也能从仓库拉取其他人的最新改动。 MyEclipse集成SVN插件后,用户无需离开IDE就能执行常见的SVN操作。例如,可以通过以下...

    myeclipse-10.7.1 SVN插件

    4. 使用插件:现在你可以右键点击项目,选择“Team”菜单,看到诸如“Share Project”(共享项目)、“Commit”(提交)、“Update”(更新)等SVN操作,开始你的版本控制之旅。 在实际使用过程中,有几个关键的SVN...

    SVN插件Eclipse MyEclipse

    - 在"工作区"(Work with)字段旁点击"添加"(Add),选择"本地"(Local)选项,找到并定位到已下载的插件文件位置,点击"确定"。 - 选中列出的插件,按照提示进行安装并重启IDE完成安装。 5. **使用SVN插件进行...

    arcgis 加载tif文件

    4. **添加数据**:点击菜单栏上的“添加数据”按钮,弹出文件选择对话框。导航到你的“动态资源文件夹”,找到要加载的TIFF文件,选中它并点击“添加”。 5. **TIFF文件设置**:添加后,TIFF文件会以图层的形式出现...

    SmartGit中文使用1

    它适用于Linux、Mac OS X(10.7或更高版本)以及Windows(Vista或更高版本)操作系统。作为一款分布式版本控制系统(DVCS),Git和Mercurial为用户提供了灵活且高效的代码管理方案。 - **安装**: 用户可以根据自己...

    MAC全屏操作指南

    可以选择任意本地文件夹作为共享文件夹。 - 如果希望共享文件夹仅支持只读访问,则勾选“Read-only”复选框。 3. **管理共享文件夹** - 除了添加新的共享文件夹外,还可以通过点击“Remove”按钮来移除不再需要...

    精通Flex 3.0——基于ActionScript 3.0实现_源代码

    10.2 本地样式设定 223 10.2.1 直接设定组件的样式属性 223 10.2.2 通过mx:Styles设定组件样式 225 10.3 通过样式管理类设定样式 226 10.3.1 样式管理类简介 227 10.3.2 样式管理类设定样式的实例 227 ...

    ARCGIS_拓扑检查步骤与修正拓扑错误技巧

    - 在ArcCatalog中,选择一个本地目录,右键点击并选择“新建” -&gt; “创建个人地理数据库(personal GeoDatabase)”。 3. **创建数据集:** - 选择刚创建的个人地理数据库,右键点击并选择“新建” -&gt; “数据集...

    win10Eclipse连接git远程仓库文档

    由于MyEclipse的10.7版本可能太旧,无法成功搭建Git仓库,所以文档中提供了一个解决方案,并建议使用与MyEclipse相似的Eclipse环境。首先,需要检查Eclipse的版本,可以通过点击Help菜单下的Installation Details来...

    myeclipse10,8.5SVN插件site-1.8.7.zip

    7. **工作副本管理**:管理本地工作副本的状态,如标记为忽略、暂存等。 8. **权限管理**:通过SVN服务器,管理员可以设定用户和组的访问权限,控制对仓库的访问。 在安装此插件后,用户可以通过MyEclipse的“Team...

    Android高级编程.pdf

    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图标,或从“开始”菜单中选择“TortoiseSVN &gt; Repository Browser”。 2. **输入SVN URL地址**: - 在弹出的窗口中输入SVN仓库的URL地址,例如:`...

Global site tag (gtag.js) - Google Analytics