Условная компиляция “еще”

В AS3 можно передать константу компилятору

-define+=CONFIG::DEBUG,true

И используйте его для условной компиляции как так:

CONFIG::DEBUG {
   trace("This only gets compiled when debug is true.");
}

Я ищу что-то как #ifndef, таким образом, я могу инвертировать значение отладки и использовать его для условного добавления кода выпуска. Единственное решение, которое я нашел до сих пор, было в документации условной компиляции в Adobe и так как мои конфигурации отладки и выпуска являются взаимоисключающими, я не люблю идеи наличия и ОТЛАДКА и ВЫПУСКАЮ константы.

Кроме того, этот формат работают, но я предполагаю, что он осуществляет проверку во времени выполнения, которое не является тем, что я хочу:

if (CONFIG::DEBUG) {
   //debug stuff
}
else {
   //release stuff
}

Я также рассмотрел выполнение чего-то вроде этого, но это все еще не изящное решение, на которое я надеялся:

-define+=CONFIG::DEBUG,true -define+=CONFIG::RELEASE,!CONFIG::DEBUG

Заранее спасибо :)

28
задан Peter Hall 24 December 2018 в 23:40
поделиться

1 ответ

Используйте конструкцию if / else : мертвый код будет удален компилятором и не будет протестирован во время выполнения. У вас будет только одна версия вашего кода в вашем swf.

Если вы не уверены, воспользуйтесь декомпилятором или дампом, чтобы увидеть, что происходит на самом деле.

http://apparat.googlecode.com/files/dump.zip

http://www.swftools.org/

...

8
ответ дан 28 November 2019 в 03:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: