Можно ли выполнить #define в Adobe Flex?

Я ищу способ сделать что-то похожее на c/c++ #define в adobe flex.

Я хотел бы иметь много разных путей, по которым может идти сборка проекта, в зависимости от того, что было определено. Есть ли такая вещь во флексе?

Я знаю, что есть способы установить глобальные переменные, но это не совсем подходит для моей цели. возможность иметь структуры с многочисленными #ifndefined и это действительно то, что мне нужно.

Благодарность!


person Without Me It Just Aweso    schedule 26.03.2010    source источник


Ответы (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);
        }
    }
}
person davr    schedule 27.03.2010
comment
Очень круто. Я не знал, что ты так умеешь! Спасибо за информацию. - person Marshall Alsup; 27.03.2010

Просто чтобы сохранить эту информацию здесь, можно использовать препроцессор C (CPP) с AS3, если хотите. Он предоставляет более мощные функции, чем встроенные в MXMLC, если они вам нужны. Пример:

http://osflash.org/flex2cpp

person davr    schedule 29.03.2010