Какой Flash SWF-компилятор использует директивы компилятора?

Любые существующие Flash SWF-компиляторы, которые могут понимать такие директивы, как #IF #ENDIF и т. Д.?

Некоторые SWF-компиляторы: (с надеждой)

  • Компилятор AS3 - Haxe
  • Компилятор AS2 - MTASC
  • Adobe Flex Compiler - Mxmlc
  • C# для SWF-компилятора - Debreuil

2 ответа

Решение

Я использовал mtascи не поддерживает этот вид условной компиляции. Тем не менее, похоже, Flex 3 mxmlc имеет поддержку для этого через -define опция командной строки. Кроме того, Haxe делает именно то, что вы хотите.

Компилятор MXMLC также поддерживает условную компиляцию, хотя он довольно примитивен и странно реализован.

Они не реализовали 'ifdef'. Вместо этого мы просто получаем значение после запятой из присваивания. Хотя это прекрасно работает для вставки строк, это довольно запутанно для логических выражений.

В следующем примере будет скомпилирована только реализация метода release:

-define=CONFIG::debugging,false -define=CONFIG::release,true

Тогда в вашем исходном коде:

CONFIG::debugging
private function configure():void {
    // set up for debugging
}

CONFIG::release
private function configure():void {
    // set up for release
}
Другие вопросы по тегам