MenuBuilder 基本工作流程

Adobe AIR 1.0 和更高版本

通常,不管要创建的菜单类型是什么,使用 MenuBuilder 框架创建菜单时都需要执行三个步骤:

  1. 定义菜单结构: 创建一个文件,其中包含定义菜单结构的 XML 或 JSON。对于某些菜单类型,顶级菜单项是菜单(例如,在窗口菜单或应用程序菜单中)。对于其他菜单类型,顶级项目是单个菜单命令(比如在上下文菜单中)。若要查看定义菜单结构的格式的详细信息,请参阅 定义 MenuBuilder 菜单结构

  2. 加载菜单结构: 调用合适的 Menu 类方法( Menu.createFromXML() Menu.createFromJSON() )以加载菜单结构文件,并将其转换为实际的菜单对象。两种方法都返回一个 NativeMenu 对象,然后可以将此对象传递给该框架的菜单设置方法之一。

  3. 分配菜单: 按照菜单的使用方式调用合适的 Menu 类方法。选项是:

    • Menu.setAsMenu() ,用于窗口菜单或应用程序菜单

    • Menu.setAsContextMenu() ,将该菜单显示为 DOM 元素的上下文菜单

    • Menu.setAsIconMenu() ,将该菜单设置为系统任务栏或停靠栏图标的上下文菜单

确定何时执行代码很重要。尤其是,必须在创建实际操作系统窗口之前分配窗口菜单。任何将菜单设置为窗口菜单的 setAsMenu() 调用都必须直接在 HTML 页中执行,而不是在 onload 或其他事件处理函数中执行。在操作系统打开窗口之前,必须运行创建菜单的代码。同时,任何引用 DOM 元素的 setAsContextMenu() 调用都必须在创建此 DOM 元素之后发生。最安全的方法是将包含菜单分配代码的 <script> 块放在位于 HTML 页末尾的结束标记 </body> 以内。