Hi!
Проблема, точнее непонятка в следующем: делаю цикл временной диаграммы, но тк он слишком медленный, то в него вставляю циклы обыкновенные (с break'ом по условию)
Выглядит это так:
1-й кадр
Код:
//инициализация всего...
if (kOnce == undefined){
go = false;
kOnce = false;
}
n = 800000;//к-во интераций
i = 0;//два счётчика
j = 0;
data_arr = new Array(); //массив с данными
delay = 3000;//через это время обычный цикл закончится (до 14000)
fillData = true;//разрешение выполнять виды действий (два штука)
checkMax = true;
this.createTextField('dv', 1,50,50,200,300);//окно со служебной инфой
dv.border = true;
if (go == false) stop();//разрешение на выполнение this мувика
2-й кадр
Код:
if (fillData) {
oldTime = getTimer();
for (var kk = i; kk < n; kk ++){//начать с шага i
data_arr[kk] = Math.random()*15;// загрузить чем-нить комп :)
if ((getTimer()- oldTime) > delay) { //если getTimer уйдёт от oldTime на delay ms, то оборвать цикл
var ss1 = 1111;//маркеровочная переменная тч break сработал
break;
}
}
i = kk; //сохраним прогресс цикла
}
if (checkMax) {//абсолютно тоже самое что и выше
oldTime1 = getTimer();
for (var k = j; k < data_arr.length; k++) {
if ((getTimer()-oldTime1) > delay) {
var ss2 = 111; //!!!!!!!!тут НЕПОНЯТКА: ss2 - always [i][b]undefined[/i][/b]
break;
}
}
j = k;
}
//служебная инфа
dv.text += 'i = ' + i + ' j = ' + j + ' n = ' + n + '\r' ;
dv.text += 'ss1 = ' + ss1 + ' ss2 = ' + ss2 + ' n = ' + n + '\r ******* \r' ;
dv.scroll = dv.maxscroll;
3-й кадр
Код:
if (i<n) gotoAndPlay(2);
else {
//тоже служебная инфа
dv.text += '...done' + '\r' +'ss1 = ' + ss1 + ' ss2 = ' + ss2 + ' n = ' + n + '\r' ;
stop();
//можно ещё освободить ~100Мб памяти, удалив массив, но... а вдруг понадобится :]
}
ну и делаем кнопку с кодом:
Код:
on (release) {
go = true;
play();
}
Изивините, что так много. Проблемма выглядит так:
...done
ss1 = 1111 ss2 = undefined n = 800000
Блн! все глаза проглядел, где ошибка - не вижу. Чего этой ss2 для создания не хватает???
ЗЫ флэшка работает в таком виде и не ругается по поводу тч "может работать слишком медленно и прекратить скрипт?"