PDA

Просмотр полной версии : Загрузка переменных и onLoadError()


MaskiShow
05.10.2009, 17:35
В _level0 загружаются переменные с файла. Как сделать, чтобы работала onLoadError?

var loadListener:Object = new Object()

loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
trace(">> errorCode: " + errorCode)
trace(">> httpStatus: " + httpStatus)
}

var mcLoader:MovieClipLoader = new MovieClipLoader()
mcLoader.addListener(loadListener)

Теперь нужно в _root загрузить переменные, т.е. сделать что-то вроде
mcLoader.loadVariables("http://www.sitename.ru/...", _root) :rolleyes:

Как это корректно сделать? Или есть другой способ обрабатывать ошибки сервера при загрузке переменных из файла?

dimarik
05.10.2009, 18:26
class LoadVars

MaskiShow
05.10.2009, 22:43
Спасибо. А как теперь, если мы загрузили переменные в myLoadVars,
var myLoadVars:LoadVars = new LoadVars()
...
myLoadVars.load("http://...")
перетащить (или сразу загрузить) их в _level0, т.е. сделать

a = myLoadVars.a //a, b.. - это переменные в загружаемом файле
b = myLoadVars.b
...

mooncar
05.10.2009, 23:10
Внимательно посмотрите примеры с методами класса LoadVars. Не могу понять, как вы умудрились прозевать самый важный метод - onLoad (ну еще и onData - для извлечения полной строки из файла).
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean) {
if (success) {
а = result_lv.a;
b = result_lv.b;
} else {
trace("Error connecting to server.");
}
};

MaskiShow
05.10.2009, 23:29
Я их упустил вместо многоточия в коде.
Имеется ввиду, что после onLoad и onData переменные содержатся в result_lv, и приходится ручками прописывать

а = result_lv.a;
b = result_lv.b;

А если переменных сотня? Как быть, чтобы они сразу в _root грузились?

И еще у меня почему-то локально происходит загрузка, а на сервере флешка не хочет принимать файл данных (видимо на странице надо укзать что-то а-ля "allowDomain")...

dimarik
05.10.2009, 23:29
var result:LoadVars = new LoadVars();
result.onLoad = function(success:Boolean):Void {

if (success) {
// Все принятые переменные пишем в _level0
for (var i:String in this) {
_level0[i] = this[i];
}
}

else {
trace("Error connecting to server.");
}

};

А если всерьёз хотите заняться программированием, то начинайте забывать о глобальных переменных.

Добавлено через 2 минуты
И еще у меня почему-то локально происходит загрузка, а на сервере флешка не хочет принимать файл данных (видимо на странице надо укзать что-то вроде allowDomain??)...

Да, на том сервере, откуда загружаете переменные, задайте корректный crossdomain.xml