Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Область видимости данных массива (http://www.flasher.ru/forum/showthread.php?t=95494)

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 в дальнейшем в программе

CorC 07.05.2007 12:47

Надо дождаться конца загрузки 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("*");
//Здесь идет обработка массива
}
}

использовать данные. :(

etc 07.05.2007 12:52

As_Serge, оформите код в посте тегами [code][/code].

CorC 07.05.2007 12:59

А я про что говорил?
Да можно использовать только в функциях вызванных после onLoad или самой onLoad

Kikasso 07.05.2007 13:03

Код:

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

etc 07.05.2007 13:10

Kikasso, а в чем тайный смысл строки
Код:

if ( (success == true ) == true ){
?

As_Serge, загрузка данных асинхронна, поэтому и создан onLoad. Использовать полученные элементы нужно в обработчике onLoad или так, как написал Kikasso.

Kikasso 07.05.2007 13:13

Код:

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

ОЙ! извиняйте...
Усе заработало!!!
Спасибо всем огромное за помощь!

etc 08.05.2007 11:58

Цитата:

Сообщение от Kikasso
2__etc: а в строке
Код:

if (success == true){
больше смысла?

Больше, чем было у тебя :)


Часовой пояс GMT +4, время: 09:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.