Karandash8 |
13.04.2010 15:40 |
загрузка двух xml файлов
здравствуйте!
у меня есть класс, в нем осуществляется загрузка двух xml файлов, после загрузки должно сгенерироваться событие. Вопрос в том как это лучше сделать? я это сделал следующим образом:
Код AS3:
public class XMLLoader extends Sprite {
public var xmlMap:XML;
public var xmlObjects:XML;
private var ready:Boolean=false;
//---------------------------------------------------------
public function XMLLoader() {
var loaderMap:URLLoader=new URLLoader();
loaderMap.dataFormat=URLLoaderDataFormat.TEXT;
loaderMap.addEventListener(Event.COMPLETE,loadCompleteMap);
loaderMap.load(new URLRequest("map.xml"));
var loaderObjects:URLLoader=new URLLoader();
loaderObjects.dataFormat=URLLoaderDataFormat.TEXT;
loaderObjects.addEventListener(Event.COMPLETE,loadCompleteObjects);
loaderObjects.load(new URLRequest("staticObjects.xml"));
}
//---------------------------------------------------------
private function loadCompleteMap(event:Event):void {
xmlMap=new XML(event.target.data);
if (ready==true) {
dispatchEvent(new Event("xmlLoaded",true));
} else {
ready=true;
}
}
//---------------------------------------------------------
private function loadCompleteObjects(event:Event):void {
xmlObjects=new XML(event.target.data);
if (ready==true) {
dispatchEvent(new Event("xmlLoaded",true));
} else {
ready=true;
}
}
}
есть ли более гибкий подход? своего решения опасаюсь в следующем: а что если второй файл загрузится в тот момент когда первый уже сгенерировал событие, но еще не успел изменить значение переменной ready. Тогда получится что пользовательское событие никогда не сгенерируется. Иными словами это обычный параллелизм и доступ к общему ресурсу, отсюда и все вытекающие проблемы.
|