2013-06-13 1 views
1

У меня есть приложение Flex, в котором я хочу загрузить свойства из файла во время выполнения.
Например: я хочу иметь адрес электронной почты для администратора приложения, и я не хочу перестраивать приложение каждый раз, когда изменяется администратор. Я хочу внести изменения в файл свойств, и приложение должно загрузить обновленное значение.Загрузить свойства из файла во время выполнения в Flex

Я нашел учебники для загрузки локализаций во время выполнения, но это не совсем то, что мне нужно.
Любая помощь (и пример кода) будет оценена по достоинству.

PS.
Если это имеет значение, мое приложение скомпилировано в Flex 3.5

+0

Просто поместите JSON или XML-файл на сервере, загрузите его и проанализируйте. У вас есть конкретная проблема? – RIAstar

+0

Почему мне нужно скачать файл? А также разобрать его самостоятельно? Я хочу разместить его с помощью приложения (например, файл свойств Spring). –

+1

Приложение Flex работает на клиентской машине (в отличие от классического - возможно, Spring-based - веб-приложение), поэтому единственный способ читать свойства во время выполнения - это иметь Flex приложение загружает файл свойств на клиентской машине и читает его. – RIAstar

ответ

1

Вам необходимо загрузить внешние файлы свойств с помощью объекта URLLoader и затем проанализировать свойства. Для синтаксического анализа, вы можете использовать метод StringUtils.parseProperties из AS3Commons-Lang

var urlLoader:URLLoader = new URLLoader(); 
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler); 

var request:URLRequest = new URLRequest(url); 
urlLoader.load(request); 

private function urlLoaderCompleteHandler(event:Event):void { 
    var properties:Object = StringUtils.parseProperties(urlLoader.data); 
} 
+0

Не знал, что у вас был парсер .properties: хорошо знать. – RIAstar

3

В дополнение @ ответ Кристофа: есть два способа сделать синтаксический изначально (т.е. не требуется сторонняя библиотека), но ни один из них анализирует файл .properties.

JSON

(предупреждение: только изначально от Flash Player 11)

Написать свой конфигурационный файл в формате JSON:

{ 
    "myProperty": "myValue", 
    "otherProp": "someValue" 
} 

Загрузите это так же, как Christophe описывает и обрабатывать следующим образом:

private function urlLoaderCompleteHandler(event:Event):void { 
    var properties:Object = JSON.parse(urlLoader.data); 
    trace(properties.myProperty); //myValue 
} 

XML

Написать свой конфигурационный файл в формате XML:

<config> 
    <myProperty>myValue</myProperty> 
    <otherProp value="someValue"/> 
</config> 

Загрузите это так же, как Christophe описывает и обрабатывать как это:

private function urlLoaderCompleteHandler(event:Event):void { 
    var properties:XML= XML(urlLoader.data); 
    trace(properties.myProperty.text()); //myValue 
    trace([email protected]); //someValue 
} 
Смежные вопросы