Можно ли сделать #define в Adobe Flex?
Я ищу способ сделать что-то похожее на AC / C++ #define в Adobe Flex.
Я хотел бы иметь много разных путей, которые может принять сборка проекта, в зависимости от того, было ли что-то определено. Существует ли такая вещь в flex?
Я знаю, что есть способы установить глобальные переменные, но они действительно не соответствуют моей цели. возможность иметь структуры с множеством #ifndefined, и это действительно то, что мне нужно.
Спасибо!
2 ответа
На самом деле MXMLC (компилятор в Flex SDK) поддерживает некоторые ограниченные возможности препроцессора. Вы можете использовать их для передачи постоянных значений или для имитации функциональности типа #ifdef / #ifndef.
Пример 1:
Этот код выполняется только если -define=CONFIG::debugging,true
флаг передается компилятору:
CONFIG::debugging {
// Execute debugging code here.
}
Пример 2:
Измените цвет кнопки в зависимости от того, определили ли вы "CONFIG::release" или "CONFIG::debugging"
// compilers/MyButton.as
package {
import mx.controls.Button;
CONFIG::debugging
public class MyButton extends Button {
public function MyButton() {
super();
// Set the label text to blue.
setStyle("color", 0x0000FF);
}
}
CONFIG::release
public class MyButton extends Button {
public function MyButton() {
super();
// Set the label text to red.
setStyle("color", 0xFF0000);
}
}
}
Просто чтобы сохранить эту информацию здесь, можно использовать препроцессор C (CPP) с AS3, если вы хотите. Он предоставляет более мощные функции, чем встроенные в MXMLC, если они вам нужны. Пример: