Flash Builder条件编译问题

时间:2011-04-06 12:40:07

标签: flex flash-builder conditional-compilation

如何在Flex项目中执行以下操作?

package{

#ifdef BAR
    class Foo{
        ...implementation of Foo....
    }

#else
    class Foo{
        ...alternative implementation of Foo
    }
#endif
}

如果我尝试使用以下编译器语句执行此操作     -define CONFIG :: BAR,是的     -define CONFIG :: NOBAR,false

以这种方式编程:

package{

CONFIG::BAR{
    class Foo{
        ...implementation of Foo....
    }
}

CONFIG::NOBAR{
    class Foo{
        ...alternative implementation of Foo
    }
}
}

然后flash builder给我一个编译错误:

1018: Duplicate class definition: Main

如何解决?

2 个答案:

答案 0 :(得分:4)

看看Using conditional compilation。看起来您不需要将类放在{ }块中。

如果文档是正确的,这应该有效:

package{

    CONFIG::BAR
    class Foo{
        ...implementation of Foo....
    }

    CONFIG::NOBAR
    class Foo{
        ...alternative implementation of Foo
    }
}

答案 1 :(得分:-2)

通常,如果你想做这样的事情,而不是用两种不同的方式定义类,你可以定义同一个类的两个不同的子类(或者如果需要的话,实现相同接口的两个不同的类)。然后在#ifdef子句中,将正确的子类分配给引用变量。然后其余的类将引用该变量,并获得所需的类定义。