2011-04-06 100 views
0

如何在Flex项目中执行以下操作?Flash Builder条件编译问题

package{ 

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

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

如果我尝试用下面的语句编译 -define CONFIG :: BAR,真正 -define CONFIG :: NOBAR,假

和程序是这样做的:

package{ 

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

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

则Flash Builder给了我一个编译错误:

1018: Duplicate class definition: Main 

如何解决?

回答

4

看看Using conditional compilation。看起来你不需要把课程放在{ }区块中。

如果文件是正确这应该工作:

package{ 

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

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

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