2013-12-19 97 views
1

我正在開發一個針對互聯網和Android的應用程序。
對於Android我使用的是AIR,但對於瀏覽器我也需要使用Flash Player。該應用將有不同的階段。到目前爲止,要將AIR應用程序移植到瀏覽器,我曾經從所有AIR函數中剝離代碼,但現在我不能使用這種方法,因爲兩者都會有更新。

AIR到Flash Player,反之亦然

ANEs和進口產生大問題。我會使用功能來檢測平臺,並且知道不要進入該代碼部分,但有沒有辦法標記它們,以便它們不會被導入,如忽略跟蹤或至少不會在編譯時拋出錯誤。 還是有更好的方法?

回答

1

我建議你通過編譯器常量使用條件編譯。 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代碼包裝在條件語句中。

+0

太棒了!謝謝,救了我:D –