Честно скажу, сам не знал. Прочитал только сегодня тут.
Значит, оказывается, для компилятора можно указывать константы в специальном неймспейсе ( по крайней мере выглядит так ), и потом использовать их для условной компиляции в зависимости от значения. Например, для отладки можно использовать следующий код:
function log( message:String ):void
{
CONFIG::Debug {
trace( message );
}
}
Который, если CONFIG::Debug == true, вкомпилит этот trace, в противном же случае нет.
Константы определяются следующим образом:
- Flash. В File > Publish Settings, кнопка Settings. Добавить имя и значение в Config constants.
- Flex Ant Task.
<mxmlc ... > <define name="CONFIG::Debug" value="false"/> </mxmlc> - Flex-config.xml
<compiler> <define> <name>CONFIG::Debug</name> <value>false</value> </define> </compiler> - mxmlc -define=CONFIG::Debug,false
Получается очень интересная штука. Дебаг и релиз версии лично у меня отличаются наличием всяких внешних вызовов дебагеров, например Alcon, которые совершенно не нужны в релизе. Проблема лишь в том, что мало кто эту фишку знает и, если отсутствуют объявления этих констант (мало ли, скопипастили код), то скомпилить становится нетривиально.

главная проблема с этим способом – неприятие его многими (всеми?) ИДЕ. кто-нибудь знает редактор, которые не ругается на упоминание этих переменных?
flex builder?
Жесть. Так долго писал как побороть, и на тебе, слетело.
Отписал в ruFlash:
http://groups.google.com/group/ruflash/browse_thread/thread/eb97256b7ebfcd0