Просмотр полной версии : Область видимости данных массива
As_Serge
07.05.2007, 12:34
var magazin_array = new Array ();
var load_mag = new LoadVars();
load_mag.load ("c:/tt/eee.txt");
load_mag.onLoad = function (success:Boolean){
if (success == true){
magazin_array=load_mag.magtext.split("*");
//Здесь идет обработка массива
}
}
Этот код выполняется при загрузке
Вопрос в следующем: как использовать элементы массива, например magazin_array[225], вне функции load_mag.onLoad в дальнейшем в программе
Надо дождаться конца загрузки LoadVars
Т.е. последующие действия (функции) вызываются в onLoad'e
As_Serge
07.05.2007, 12:49
Все данные в массив подгружаются и обрабатываются коректно. Трудность в том, что невозможно нигда, кроме как внутри load_mag.onLoad = function (success:Boolean){
if (success == true){
magazin_array=load_mag.magtext.split("*");
//Здесь идет обработка массива
}
}
использовать данные. :(
As_Serge, оформите код в посте тегами .
А я про что говорил?
Да можно использовать только в функциях вызванных после onLoad или самой onLoad
var magazin_array = new Array ();
var load_mag = new LoadVars();
load_mag.onLoad = function (success:Boolean){
if ( (success == true ) == true ){
magazin_array.concat( this.magtext.split("*") );
doSome();
}}
load_mag.load ("c:/tt/eee.txt");
function doSome(){
//Здесь идет обработка массива
trace( magazin_array );
}
Я там в одном месте жестко прикололся.. Сорри не удержался.
upd: код нерабочий, см. дальше
As_Serge
07.05.2007, 13:07
Извините... Я наверное не правильнно задал вопрос :(
ВОЗМОЖНО ЛИ использовать элементы массива, например magazin_array[225], ВНЕ функции ...onLoad в дальнейшем в программе?
И если - да, то как?
грубо говоря trace(magazin_array[225]);
дает undefined вне onLoad
Kikasso, а в чем тайный смысл строки if ( (success == true ) == true ){
?
As_Serge, загрузка данных асинхронна, поэтому и создан onLoad. Использовать полученные элементы нужно в обработчике onLoad или так, как написал Kikasso.
var magazin_array = new Array ();
var load_mag = new LoadVars();
load_mag.onLoad = function (success:Boolean){
if ( success ){
magazin_array = magazin_array.concat( this.magtext.split("*") );
doSome();
}else{
trace("error");
}}
load_mag.load ("eee.txt");
function doSome(){
//Здесь идет обработка массива
trace( magazin_array );
}
2__etc: а в строке if (success == true){ больше смысла?
2 As_Serge: теперь работает. Я выделил белым.
As_Serge
07.05.2007, 16:59
ОЙ! извиняйте...
Усе заработало!!!
Спасибо всем огромное за помощь!
2__etc: а в строке if (success == true){ больше смысла?
Больше, чем было у тебя :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.