我正在开发针对互联网和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代码包装在条件语句中。