NativeApplication.supportsMenu属性: if( NativeWindow.supportsMenu ) { // Windows } elseif( NativeApplication.supportsMenu ) { // Mac OS X }
如果NativeWindow.supportsMenu属性值为true,运行在Windows操作系统下的程序具有本地窗口菜单。flash.desktop.NativeApplication类提供程序级信息和函数,其中有个静态的supportsMenu属性。如果NativeApplication对象支持程序级菜单,则说明当前运行在Mac OS X环境中。
当应用程序被创建,布局初始化完成后,initHandler方法被调用,新的File菜单被添加到WindowedApplication 或NativeApplication 实例的menu 属性上, 这取决于你的操作系统(Windows 或Mac OS X)。通过createFileMenu方法子菜单被添加到File菜单中,事件监听器被添加用于响应每个目录项的select事件。
当应用程序运行在Windows操作系统时,主应用程序窗口将在标题栏下面显示File菜单。当运行在Mac OS X 操作系统时,File菜单将会显示在应用程序工具栏上。选择File菜单后会打开拥有子菜单选项的上下文菜单。点击任何菜单项会调用注册了的事件监听器并在<mx:TextArea>对象上打印出文本。
var rule:NativeMenuItem = new NativeMenuItem( "Line", true );
你还可以在运行期间通过NativeMenuItem类的enabled属性启动和禁止菜单项:
+展开
-ActionScript
var saveItem:NativeMenuItem = new NativeMenuItem( "Save" ); saveItem.enabled = false;
通过在运行期间启动和禁止菜单,可以设定哪些菜单命令可用,这依赖于你的程序需求。
本地菜单的概念不仅仅局限于应用程序菜单和窗体菜单,还有如上下文菜单----鼠标右键打开,或者是窗口中命令打开的菜单以及系统托盘打开的菜单都可以认为是本地菜单,实际上flash.ui.ContextMenu和flash.ui.ContextMenuItem类都是继承自AIR native menu API.