Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Динамическая загрузка XML по таймеру (http://www.flasher.ru/forum/showthread.php?t=138003)

xaoc 27.03.2010 21:09

Динамическая загрузка XML по таймеру
 
Здравствуйте уважаемые господа флешеры и флексеры
Столкнулся с такой проблемой, уж не знаю как решить, суть совсем нетривиальна

Есть некое приложение, радио, которое при загрузке подгружает список каналов из xml с сервера. Так вот, если интернет соединение у клиента не работает, выводится сообщение что соединение потеряно, и пытается загрузить ещё раз, как только соединение восстанавливается, происходит загрузка, звучат фанфары и все ликуют. Но на деле же выходит немного не так. Если на момент запуска соединение есть, то загрузка идет. Но если соединения нет, а через пару секунд восстанавливаю (denwer) то загрузка всё-равно не происходит
Код AS3:

/*Born вызывается когда приложение создано*/
private function Born():void
{
        myLoaderDress.load(myXMLDRESS);
        myLoaderDress.addEventListener(IOErrorEvent.IO_ERROR, errorXml);
        myLoaderDress.addEventListener(Event.COMPLETE, xmlLoaded);
}
public var ServerURL:String = "http://trancelaciya.com/radio";
private var myCast:XML = new XML();
private var XML_CAST:String = "http://trancelaciya.com/radio/radio_list.xml";
private var myXMLCAST:URLRequest = new URLRequest(XML_CAST);
private var myLoaderCast:URLLoader = new URLLoader(myXMLCAST);
private var timer:Timer = new Timer(1000);
 
private function errorXml(event:Event):void
{
        timer.addEventListener(TimerEvent.TIMER, loadXML);
        Trace("Соединение с сервером потеряно");
        timer.start();
}
private function loadXML(event:TimerEvent):void
{
        myLoaderCast.load(new URLRequest(XML_DRESS));
        Trace("Загрузка списка. Попытка № "+event.currentTarget.currentCount);
}
private function xmlLoaded(event:Event):void
{
        Trace("Список станций загружен");
        timer.removeEventListener(TimerEvent.TIMER, loadXML);
        timer.stop();
}

Заранее спасибо!


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

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