PDA

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


Bright
29.06.2005, 07:48
есть файл тхт:
massiv = ["0", "1", "и так далее"]

в файле он не один. там еще 3 массива и 6 переменных все разделены & как и надо.

но почему то это не грузится loadVariavles....
все делаю правильно, проверял без массивов - работает.
может массивы как то по особому грузить надо? я просто раньше с этим не сталкивался (максимум - приходилось грузить переменные из тхт)
помогите, объясните
[afr смотрел, там нету]
Заранее спасибо!

KUZEN
29.06.2005, 12:03
Самый лучший вариант в твоей ситуации это использовать xml , грузить его во флешу и там уже лепить массивы ...

Psycho Tiger
29.06.2005, 12:07
Грузи просто переменные и цифру всех переменных.
Пример:
for (i=0; i<=totalmass; i++){
newmassiv[i]=_root["mass"+i];
}
Что то вроде етого

Жень Шень
29.06.2005, 12:39
Привет!
Загрузи строку разделенную определенным символом на подстроки и воспользуйся String.split
Метод split разбивает объект String на подстроки там, где встречается указанный символ и возвращает массив подстрок.

Trains
29.06.2005, 13:57
Bright, кто ж так из текстового файлы грузит, да еще и массивы...:) ты бы еще в текстовом файле гоутуЕндПлей написал...:)
вот пример двумерного масива, удалишь лишнее...:)
загоняешь в текстовик массив в таком виде:
--------------------------------
info=1 | images/irbis/basic/001.jpg | images/irbis/swf/text1.swf;
1 | images/irbis/basic/002.jpg | images/irbis/swf/text1.swf;
1 | images/irbis/basic/003.jpg | images/irbis/swf/text1.swf;
2 | images/irbis/lux_classica/0001.jpg | images/irbis/swf/lux_klassika.swf
;
--------------------------------
в мувике грузишь и разбиваешь на флешный двумерный массив:
--------------------------------
arrayLoad = new LoadVars();
arrayLoad.load("irbis.txt");
arrayLoad.onLoad = build_array;
function build_array() {
arrayrow = arrayLoad.info.split(";\r\n"); //сначало дербаним по строкам
for (i=0; i<arrayrow.length; i++) {
arrayrow[i] = arrayrow[i].split(" | "); //потом по палке:)
}
for (i=0; i<arrayrow.length; i++) {
trace(arrayrow[i]);
}
};
--------------------------------
простонько, да...?:)

Corvus1
24.01.2006, 13:37
Опять вопрос по загрузке переменных, вернее по доступу к ним.
Сорри, в поиске именно такого случая не нашёл...



LoadVariables("/test.htm","");

( в файле находится
s_str=blablabla)

Загружаю так, переменная становится видна (через Ctrl+Alt+V) как
_level0.s_str="blablabla";

а как дальше её юзать?
тут же ниже пишу в скрипте
trace(_level0.s_str) - выдаёт undefined

var s: string;
s = _level0.s_str;
trace (s) - тоже выдаёт undefined :(((

Skubent
24.01.2006, 13:47
_root.s_str

Corvus1
24.01.2006, 14:06
Оценил Ваш искромётный юмор (прусь, можно сказать), но хотелось бы ответа по существу.

Corvus1
24.01.2006, 14:07
Конечно же я пробовал и _root.s_str и _global.s_str
- всё равно undefined...

Skubent
24.01.2006, 14:13
onLoad, onData ни о чем не говорит ?

Corvus1
24.01.2006, 15:13
arrayLoad.load("test.htm");
arrayLoad.onLoad = build_array;
Не работает!



arrayLoad.load("test.htm");
arrayLoad.onData = build_array;
Не работает!



arrayLoad.load("test.htm");
if(arrayLoad.loaded ) build_array;
А вот так заработало, ура!

Skubent
24.01.2006, 15:32
документация и хелп в общем-то, конечно, писаны идиотами для нубов, но и тебе стоит снизойти до прочтения...

Nox Noctis
24.01.2006, 16:12
а как дальше её юзать?
тут же ниже пишу в скрипте
trace(_level0.s_str) - выдаёт undefined
ошибка выделена красным цветом.
ты грузишь переменные. это НЕ происходит мгновенно.
но при этом ты "тут же ниже пишешь в скрипте" и почему-то надеешься, что переменная к этому моменту уже появится.

через ктрл+альт+в ты её видишь тогда, когда она уже загрузилась, всё верно. а чтобы программно её использовать, тебе нужно
1. узнать, что загрузка закончилась
2. только после этого пользоваться загруженным

немногословный Skubent тебе как раз намекнул на пункт 1.

Corvus1
24.01.2006, 16:20
Благодарю, теперь понятно!

Меня как раз сбило с толку то, что через ctrl+alt+V она видна.