Просмотр полной версии : проблема с внешнем файлом
прошу помочь! у меня после загрузки внешнего файла, переменной не присваивается его значение?
Вы на ответ флешера-екстрасенса расчитываете?
Покажите код или опишите конкретней проблему...
Чем доходчивей изложите суть проблемы, тем быстрее найдется решение
код прост! файл загружается успешно,значение паременной ret (файла empty.txt) выводится на панель, но не присваивается переменной meml. При попытке вывода переменной возвращает undefined!
var mal:LoadVars=new LoadVars();
mal.onLoad= function(){
var meml:String=new String(this.ret);
trace(this.ret);
}
mal.load('empty.txt');
asd_txt.text=meml;
trace(meml);
Решение просто!
Переменная meml определена локально в функции mal.onLoad() и естественно вне функции она undefined
Объявите её вне функции и в самой функции просто присвойте ей нужное значение.
то есть код должен быть как ниже приведённый?
var mal:LoadVars=new LoadVars();
var meml:String=new String();
mal.onLoad= function(){
meml=this.ret;
trace(this.ret);
}
mal.load('empty.txt');
asd_txt.text=meml;
trace(meml);
этот код тоже возвращает undefined переменной meml
Загрузка не мгновенно происходит.
а если протрейсить meml внутри mal.onLoad()?
и udaaff прав - в Вашем случае лучше использовать onData
код с использованием события onData присваивает переменной meml весь текст файла и не позволяет обращаться к значению переменной ret.
мне необходимо извлечь эти значения и использовать вне функции?
kolin, отредактируйте свои посты и оформите код тегами .
не забывайте про теги code для оформления своего кода
попробуйте вот так:
var mal:LoadVars = new LoadVars();
mal.onLoad = function(bSuccess:Boolean){
if (bSuccess) {
asd_txt.text = this.ret;
} else {
trace("Error loading/parsing LoadVars.");
}
}
mal.load('empty.txt');
ввиду асинхронности кода во флеше в Вашем коде строчка trace(meml); выполняестся тогда когда данные ещё не загрузились
причем в файле empty.txt после ret не должно быть пробелов (ret=привет)
var mal:LoadVars=new LoadVars();
var meml:String=new String();
mal.onLoad= function(){
meml=this.ret;
trace(this.ret);
}
mal.load('empty.txt');
asd_txt.text=meml;
trace(meml);
вот так?
нет, не так
сначала выполняется весь код (и после функции onLoad тоже)
а в это время загружается empty.txt и когда Вы пытаетесь присвоить meml
asd_txt.text=meml;
trace(meml);
ей еще не успелось присвоится никакого значения,
... используйте мой код выше (я его подправил уже)
Благодарю вас за помощь!!!
это мне существенно помогло, но теперь возникают новые вопросы, а именно заполнив в функции массив данными из файла, возможно ли их использование вне функции?
да, но опять же если массив будет определен вне функции
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.