我正在开发针对互联网和Android的应用程序。
对于Android,我正在使用AIR,但对于浏览器,我也需要使用Flash Player。该应用程序将具有不同的阶段。到目前为止,为了将AIR应用程序移植到浏览器,我曾经从所有AIR功能中剥离代码,但是现在我不能使用这种方法,因为这两种方法都会有更新。


最大的问题出现在ANE和进口上。我将使用功能来检测平台,并且不了解该代码部分,但是有一种方法可以对其进行标记,以使它们不会被导入,例如忽略跟踪或至少在编译时不会引发错误。
还是有更好的方法?

最佳答案

我建议您通过编译器常量使用条件编译。 This article解释了如何做。

本文适合FlashDevelop的用户使用,但无论使用哪种IDE,您都应该能够完成结果。

这是一个例子:

假设您有一个名为CONFIG::AIR的配置常量,并将其设置为false,以下内容将仅编译方括号之外的代码。

CONFIG::AIR
{
    import some.air.package.AIROnlyClass;
}
import non.air.package.NonAIRClass;

CONFIG::AIR
{
    var instanceOfAIROnlyClass:AIROnlyClass = new AIROnlyClass();
}
var instanceOfNonAIRClass:NonAIRClass = new NonAIRClass();


您始终可以添加第二个编译器常量(如CONFIG::NonAIR),并将其设置为true。这样,您也可以将非AIR代码包装在条件语句中。

10-08 06:57