在AS3中,你可以通過一個常數,編譯器的Flash/Flex的條件編譯「其他」
-define+=CONFIG::DEBUG,true
,並使用它條件編譯像這樣:
CONFIG::DEBUG {
trace("This only gets compiled when debug is true.");
}
我在尋找的東西像#ifndef,所以我可以否定調試的價值,並使用它來有條件地添加發布代碼。我迄今發現的唯一解決方案是在adobe的conditional compilation documentation中,因爲我的調試和發佈配置是互斥的,所以我不喜歡同時使用DEBUG和RELEASE常量的想法。
而且,這種格式的作品,但我假設它的運行檢查在運行時是不是我想要的:
if (CONFIG::DEBUG) {
//debug stuff
}
else {
//release stuff
}
我也算是做這樣的事情,但它仍然不是完美的解決方案我希望的:提前:)
-define+=CONFIG::DEBUG,true -define+=CONFIG::RELEASE,!CONFIG::DEBUG
感謝
似乎合理。另一方面,Flash/Flex編譯器可能會很愚蠢,因爲如你所說,如果性能真的對你很重要,我會在使用之前檢查它。 – aaaidan
-1。 * if/else *構造不起作用。簡單的測試來證明它:[嵌入]在這樣一個if/else塊中的沉重文件。如果輸出文件大小相應地改變,那麼它可以工作,否則它不會。此外,這樣的if/else塊在函數外部使用時會產生語法錯誤,從而導致代碼塊不會被剝離! – bummzack
是的,我認爲這種技術太依賴於優化器的副作用。條件編譯好得多。如果您需要#ifndef之類的東西,請參閱下面的答案。 –