Можно ли сделать #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, если они вам нужны. Пример:

http://osflash.org/flex2cpp

Другие вопросы по тегам