PDA

Просмотр полной версии : Ограничение на размер массива во Flash 7-8?


Denis198
08.08.2007, 10:09
Есть очень большой массив (2000-3000 строк). размером примерно 150Кб. Массив этот находится в отдельном текстовом файле data.as
Загружаю его через #include
Проблема такая. Мувик зависает. То есть не делает ничего, и загружается не полностью.
Стоит уменьшить размер data.as до 100Кб - все прекрасно работает

Подскажите, что это такое?

etc
08.08.2007, 10:11
Сколько элементов в массиве? Строки ни о чем не говорят, строка может состоять как из одного элемента, так и из 100 000.
Я уже не говорю о том, что никакой загрузки data.as не происходит, а происходит компиляция данного as-файла.

Denis198
08.08.2007, 14:55
Массив строк. Одна строка - один элемент массива. Элементов массива, т.е. строк - от 2000 до 3000. Строка может быть очень длинной (до 1000 символов)

Да, data.as не загружается, а компилируется. При компиляции массив сжимается, весит несколько килобайт и загружается вместе с мувиком, а если через сеть тянуть, то все 150К придется скачать.

etc
08.08.2007, 14:59
В массивах я хранил до миллиона строк. Больше просто не пробовал.
Покажите файл со строками.

Denis198
08.08.2007, 15:34
Содержимое файла data.as
var myArray = new Array (
"41,3571,35,3716,230,3726,230,3674,75,3674,72,3577,41,3571",
"6376,3655,6379,3744,6284,3742,6285,3723,6352,3718,6353,3651,6376,3655",
"6172,51,6353,51,6348,189,6310,189,6312,84,6169,84,6172,51",
"39,32,202,28,194,65,72,64,76,167,37,163,39,32",
"717,1113,722,1122",
"701,1106,710,1112",
"715,1097,724,1102",
"681,1085,699,1090",
"778,1090,781,1090,781,1093,784,1093,784,1090,786,1090,786,1088,790,1088,790,1091,792,1091,792,1088,795,1088,795,1098,792,1098,792,1095,790,1095,790,10 98,787,1098,787,1100,783,1100,783,1097,781,1097,781,1100,778,1100,778,1090",
"781,1113,796,1113,796,1129,781,1129,781,1125,792,1125,792,1117,785,1117,785,1120,781,1120,781,1113",
"747,1093,753,1093,753,1101,757,1101,757,1098,772,1098,772,1107,763,1107,763,1110,765,1110,765,1128,757,1128,757,1110,759,1110,759,1107,756,1107,756,11 05,753,1105,753,1111,747,1111,747,1093",
"855,1088,858,1088,858,1090,861,1090,861,1087,864,1087,864,1085,867,1085,867,1088,870,1088,870,1085,873,1085,873,1095,870,1095,870,1092,867,1092,867,10 95,864,1095,864,1097,860,1097,860,1094,858,1094,858,1097,855,1097,855,1088",
"859,1110,873,1110,873,1126,858,1126,859,1122,869,1122,869,1114,862,1114,862,1118,859,1118,859,1110",
"824,1090,830,1090,830,1098,834,1098,834,1095,849,1095,849,1105,841,1105,841,1108,842,1108,842,1125,834,1125,834,1107,837,1107,837,1105,833,1105,834,11 02,830,1102,830,1108,824,1108,824,1090",
"857,1187,870,1174,873,1177,867,1184,872,1188,877,1182,881,1186,865,1203,862,1200,869,1192,864,1187,861,1191,857,1187",
"828,1171,847,1153,851,1156,832,1175,828,1171",
...
... много-много строк
);

etc
08.08.2007, 15:37
А приаттачить архивом полный файл?
Или мне надо делать эти самые «много-много строк»?

DarkLight
08.08.2007, 15:59
a = new Array(1000000000);
trace(a.length);
a = new Array(2140000001);
trace(a.length);
//
a = new Array(2150000001);
trace(a.length);
//
a = new Array(10000000000);
trace(a.length);
a = new Array(100000000000);
trace(a.length);
output:

1000000000
2140000001
-2144967295
1410065408
1215752192

Дальше уточнять не стал, но явно 2.140.000.001 элементов хватает для всего:)

Denis198
08.08.2007, 16:19
Спс за ответы. Тему можно закрыть.
Проблема была не в массиве, а в скрипте-обработчике