Показать сообщение отдельно
Старый 27.03.2010, 21:09
xaoc вне форума Посмотреть профиль Отправить личное сообщение для xaoc Найти все сообщения от xaoc
  № 1  
Ответить с цитированием
xaoc

Регистрация: Feb 2006
Сообщений: 19
По умолчанию Динамическая загрузка 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();
}
Заранее спасибо!
__________________
Fide, sed cui, vide