Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在ActionScript3中,类变量的条件if/else编译有效吗?_Actionscript 3_Apache Flex_Air - Fatal编程技术网

Actionscript 3 在ActionScript3中,类变量的条件if/else编译有效吗?

Actionscript 3 在ActionScript3中,类变量的条件if/else编译有效吗?,actionscript-3,apache-flex,air,Actionscript 3,Apache Flex,Air,我正在使用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; im

我正在使用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
    }

不,在方法或初始值设定项之外不能有if/else条件


出于您的目的,您只需在接口
IAppMenu
中定义泛型属性/方法,然后每个操作系统都有一个实现(当然,您仍然需要使用
功能.OS
定义要创建的实现)。

谢谢您的回答——我怀疑是这样的。但是,接口有什么帮助,因为您无法在接口中定义变量。您将实现一个接口(公共类AppMenu实现IAppMenu)。然后,您必须拥有接口中定义的所有函数。在这些函数的主体中,您必须“平台嗅探”(if(Capabilities.os.search(“iOS”)>-1)..@user1834364您确实可以在接口中定义getter/setter(
function get property():String
)。但是在您的情况下,我会尝试用另一种方式定义契约(因为在一种情况下,您需要有
NativeMenu
和另一种
NativeMenuItem
)这里的关键是契约式设计,
IAppMenu
的具体实现需要什么?可能只是接收初始化数据,并在用户与菜单项交互时发送一些事件。通过操作系统的一个实现,我真正的意思是让
WindowsAppMenu实现IAppMenu
MacOSAppMenu可以使用编译器变量,例如:if(CONFIG::Var){