0

我正在使用 Flash Builder 4.6、AIR 3.5 中的 AS3 类。

任何人都可以确认以下 if/else 语法在类定义中有效。我已经对其进行了测试,它可以在 Mac 上编译和运行,但我找不到支持它的文档。

package controller
{
    import flash.desktop.NativeApplication;
    import flash.display.NativeMenu;
    import flash.display.NativeMenuItem;
    import flash.display.NativeWindow;
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;

    [Bindable]
    public class AppMenu extends EventDispatcher
    {
        if (Capabilities.os.search("Mac")>-1) {
            public var titularMenu:NativeMenu;
            public var fileMenu:NativeMenu;
            public var editMenu:NativeMenu;
            private var optionsMenu:NativeMenu;
            private var addOnsMenu:NativeMenu;
            private var helpMenu:NativeMenu;
        } else {
            // Assign same variables as NativeMenuItem, for Windows.
        }

        // etcetera
    }
4

1 回答 1

1

不,您不能在方法或初始化程序之外使用 if/else 条件。

出于您的目的,您可以只使用在 interface 中定义通用属性/方法IAppMenu,然后每个操作系统都有一个实现(当然,您仍然需要定义使用哪个实现Capabilities.os)。

于 2012-12-01T18:31:33.850 回答