непонятка с циклом временной диаграммы и обычным @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ 1 сообщение ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
mrspb
новый человек
0
Сообщения: 30
Зарегистрирован: 23.02.05
Заголовок сообщения: непонятка с циклом временной диаграммы и обычным
Сообщение Добавлено: 13 Ноябрь 2005, 20:19:28 
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 для создания не хватает???
ЗЫ флэшка работает в таком виде и не ругается по поводу тч "может работать слишком медленно и прекратить скрипт?"
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ 1 сообщение ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100