Бармалейкин
22.06.2010, 22:00
Как на AS 2.0 сделать последовательную обработку событий? А именно:
1. у меня грузится некоторый xml-файл с данными
2. на основании того, что внутри этого файла, грузятся ещё объекты
Так вот столкнулся с тем, что данные из xml ещё не загрузились а скрипт уже перешёл к выполнению следующих команд. В итоге данных ещё нет, и вылезает ошибка. Разумеется, если грузить эти данные локально, то грузятся они быстро и всё проходит. Код простейший:
var xData:XML = new XML();
xData.ignoreWhite = true;
xData.onLoad = function(success) {
trace("Load ok!");
// тут идёт обработка данных из xml-файла
};
xData.load("xml/files.xml");
Пытался сделать ожидание загрузки, ставил после xData.load() цикл
while (!xData.loaded) { }
но он просто завесил браузер, после чего плеер запросил останов скрипта. Как я понял, во Flash нет никакой паузы/задержки а только setInterval. :(
Как лучше поступить? Как вообще строить код, который должен дожидаться окончания загрузки, прежде чем исполняться дальше? Помогите пожалуйста!
1. у меня грузится некоторый xml-файл с данными
2. на основании того, что внутри этого файла, грузятся ещё объекты
Так вот столкнулся с тем, что данные из xml ещё не загрузились а скрипт уже перешёл к выполнению следующих команд. В итоге данных ещё нет, и вылезает ошибка. Разумеется, если грузить эти данные локально, то грузятся они быстро и всё проходит. Код простейший:
var xData:XML = new XML();
xData.ignoreWhite = true;
xData.onLoad = function(success) {
trace("Load ok!");
// тут идёт обработка данных из xml-файла
};
xData.load("xml/files.xml");
Пытался сделать ожидание загрузки, ставил после xData.load() цикл
while (!xData.loaded) { }
но он просто завесил браузер, после чего плеер запросил останов скрипта. Как я понял, во Flash нет никакой паузы/задержки а только setInterval. :(
Как лучше поступить? Как вообще строить код, который должен дожидаться окончания загрузки, прежде чем исполняться дальше? Помогите пожалуйста!