Макросы компилятора ActionScript

Честно скажу, сам не знал. Прочитал только сегодня тут.

Значит, оказывается, для компилятора можно указывать константы в специальном неймспейсе ( по крайней мере выглядит так ), и потом использовать их для условной компиляции в зависимости от значения. Например, для отладки можно использовать следующий код:

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, которые совершенно не нужны в релизе. Проблема лишь в том, что мало кто эту фишку знает и, если отсутствуют объявления этих констант (мало ли, скопипастили код), то скомпилить становится нетривиально.

4 Responses to “Макросы компилятора ActionScript”


Comments are currently closed.