Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Загрузка конфигурационного файла вместе с swf (http://www.flasher.ru/forum/showthread.php?t=95846)

easyLife 17.05.2007 15:53

Загрузка конфигурационного файла вместе с swf
 
Необходимо подгрузить конфигурационный файл(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

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


Часовой пояс GMT +4, время: 00:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.