Я пытаюсь использовать параметр «define» mxmlc компилятора, чтобы вставлять константы времени компиляции в мои SWF-файлы.Получить переменную времени компиляции во время выполнения
<mxmlc ...>
<define name="NAMES::PluginCompileTime" value="Hello World!"/>
</mxmlc>
я могу получить доступ к этой переменной, если я «жёстко» это в моем коде, как это:
public static const PLUGIN_COMPILED_TIME:String = NAMES::PluginCompileTime;
Однако, я хотел бы быть в состоянии сделать это во время выполнения, используя нечто вроде getDefinitionByName ():
var value:* = flash.utils.getDefinitionByName("NAMES::PluginCompileTime");
Это выдает следующее сообщение об ошибке:
ReferenceError: Error #1065: Variable PluginCompileTime is not defined.
Кто-нибудь знает, как выполнить загрузку константы времени компиляции в пространстве имен во время выполнения?
Спасибо :) Думаю, я просто надеялся, что можно будет найти его, как если бы это было определение в SWF-файле. –
@tkk: Мне интересно, зачем вам это нужно. Если вам когда-либо понадобится значение в любой точке вашего кода, вы можете просто написать 'var something: String = NAMES :: PluginCompileTime;'. Я не понимаю, почему вам нужна явная копия значения в глобальном пространстве имен. – Gunslinger47
Ну, одна из причин заключалась в том, что необходимость жесткого кодирования значения там вводит зависимость времени компиляции к кодовой базе. Если мне не нужно жестко кодировать, вместо этого можно использовать значения по умолчанию, что делает мою компиляцию немного более «переменной». :) –