PDA

Просмотр полной версии : Загрузка конфигурационного файла вместе с swf


easyLife
17.05.2007, 15:53
Необходимо подгрузить конфигурационный файл(xml) с сервера с параметрами для функции init() (вызывается по событию creationComplete). Как это сделать именно в процессе загрузки всего приложения, а не в теле init() ?

baron27
17.05.2007, 17:10
не понял немного, но можно грузить его по initialize, а потом вызывать creationComplete.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initApp()" >
<mx:Script>
<![CDATA[
private function initApp():void {
//грузить здесь
addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete, false, 0, true);
}

private function onCreationComplete(event:Event):void
{
//.....
removeEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
}

easyLife
17.05.2007, 20:20
А как подгружаются обычно стили с помощью AS3 ?
Поробовала использовать приведенный выше вариант, происходит следующее:

public function initApp():void {
//load config block
var loader:URLLoader = new URLLoader(new URLRequest("config.xml"));
loader.addEventListener(Event.COMPLETE, confLoad);
addEventListener(FlexEvent.CREATION_COMPLETE, init, false, 0, true);
}

public function confLoad(event:Event):void {
var loader2:URLLoader = URLLoader(event.target);
configData = new XML(loader2.data);
Alert.show(configData);
}

public function init(event:Event):void {
Alert.show('1');
}

Естественно алерт 1 показывается раньше чем содержимое файла. А мне нужно, чтобы я в функции init() смогла использовать параметры, полученные из config.xml и при этом init() вызывался по событию CREATION_COMPLETE

__i
17.05.2007, 20:30
такая схема
1. Убираем из CREATION_COMPLETE инит и пихаем туда что-то типа created = true;
2.Конфиг начинаем грузить initialize. Вешаем на событие загрузки нужного конфига метод который делает такой финт : если created - то дергаем init() если нет то вешаем наш инит на CREATION_COMPLETE.

инит чтобы было удобно, советую оформить в таком виде


public function init(event: * = null) : void
{
....
}
...

easyLife
17.05.2007, 21:12
Спасибо большое!
Очень понравилось оформление функции (это то, что давно искала, но не знала где посмотреть)