Можно ли установить постоянное значение из файла конфигурации во время компиляции? - PullRequest
0 голосов
/ 24 ноября 2010

Есть ли способ установить значение идентификатора private static const из файла конфигурации во время компиляции в Actionscript 3?

Также было бы неплохо, если бы я мог сделать это в задаче mxmlc ANT.

Ответы [ 2 ]

1 голос
/ 04 января 2011

Для предварительной компиляции ANT вы можете поместить в целевой элемент:

<replaceregexp 
   file="yourFile.as" 
   match="private static const CONST_PARAM:String = '.*';" 
   replace="private static const CONST_PARAM:String = 'Your new const value';">
</replaceregexp>

Это особенно полезно, если вам нужно уникальное время сборки при каждой компиляции. В вашем ANT прекомпиляции:

<tstamp>
    <format property="timestamp" pattern="MM/dd/yyyy hh:mm:ss" />
</tstamp>
<replaceregexp 
    file="../src/Main.as" 
    match="private const BUILD_TIME:String = '.*';" 
    replace="private const BUILD_TIME:String = '${timestamp}';">
</replaceregexp>

Тогда в вашем классе Main.as:

package Main{
    import flash.display.Sprite;

    public class Main extends Sprite{

        private const BUILD_TIME:String = 'dummy value';

        public function Main() {
            trace("\n Main.as build-time:" + BUILD_TIME);
        }
    }
}

Это помогает устранить распространенную проблему, связанную с непредвиденным поведением вашего SWF-файла, поскольку он не был обновлен на промежуточном сервере.

1 голос
/ 24 ноября 2010

Сам нашел решение - условная компиляция

http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html

Это то, что вы делаете в Actionscript -

private static const CONST_PARAM:String = CONFIG::CONST_VALUE;

И ваша команда / задача mxmlc должнаопределить параметр с помощью опции -define.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...