0

Flash Builder 4.6、AIR3.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条件を設定することはできません。

目的に応じて、インターフェイス内で汎用プロパティ/メソッドを定義し、IAppMenuOSごとに1つの実装を作成することができます(もちろん、を使用して作成する実装を定義する必要がありますCapabilities.os)。

于 2012-12-01T18:31:33.850 に答える