![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Почитал про setInterval. Cложилось впечатление, что это не совсем то, что надо. Попробовал сделать - эффект получился не тот.
Может я и не прав. Похоже, что эта штука поможет скажем повторить несколько однотипных итераций через одинаковые промежутки времени. А когда цикл есть, и надо внутри итерации отсрочить действие. Наверное, можно выыернуться, но будет громоздко очень. Цитата:
Последний раз редактировалось iNils; 30.06.2008 в 19:53. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Скажите, как заставить флэш ждать в указанном примере после каждой трассировки? И будет ли сам загрузчик считать это временем "отдыха"?
|
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Ruffus!
Вы пишите скрипт в кадрах (кадре) на выполнение скрипта кадра отводится всего 15 сек. Если Вы не укладываетесь в него флеш-плэйер выдаст предупреждающее сообщение. И с этим ничего не поделаешь и паузы и байпасы Вам не помогут (ваш код). Обход один - в каждом кадре выполнять такой объем операций цикла, чтобы по времени уложиться в 15 секунд, а остуальную часть перенести на скрипт 2 кадра. Если и во втором кадре останется, то на третьий, итд. Или сделать это все в 3 кадрах. Что не ясно?! |
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Здравствуйте iNils! Ждать то он может (имеется ввиду setInterval) вот только вопрос в том, сколько?!!!
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Попробовал сделать 5 пустых кадров и в цикле написать что-то вроде
НЕ помогло. Тот же эффект, предлагает остановить ролик. Заменил 500 на триста, никак. Дело не в кадрах? |
|
|||||
|
С этим кодом:
for (var loop = 0; loop <= n; loop++) {
if (loop/500 > _root.currentframe) { _root.nextFrame(); }
}
Попробуйте что-то типа: Очень криво, конечно, но где-то рядом. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
А могу через setInterval организовать внутри функции вызод подфункции. А то пишу, результата никак не видно. Вот и заподозрил неладное.
У меня этот несчастный цикл находится внутри метода и использует внутри себя кучу локальных переменных. Если его пытаться выделить в отдельный метод, то надо будет городить чёта с этими переменными. Поэтому я спрашиваю про реальность использования подпрограмм, функций внутри функций. Последний раз редактировалось Ruffus; 02.07.2008 в 18:26. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Под конец мучений пришёл примерно к такой схеме. Есть метода класса. В нём:
...
loop_counter = 0;
sti = 0;
stj = 0;
duration = 1;
intervalID = setInterval(mainLoop, duration);
function mainLoop() {
for (var i = sti; i <= n; i++) {
...
if (sti == i) j = stj; else j = 0;
while (j <= m) {
...
depth = InstanceManager.getNextDepth(this);
MyClip.create(name, depth, ...);
j++;
loop_counter++;
if (loop_counter >= limit) {
loop_counter = 0;
sti = i;
stj = j;
return;
}
}
}
clearInterval(intervalID);
otherCode();
return;
}
Заметил, что скорость построения объектов уменьшается. Под конец оно занимает уже секунды. Проверил через getTimer время и удивился: там к концу выполнения значения высвечиваются порядка 100000. Так как это в миллисекундах, это получается, что последние клипы строятся по 100 секунд каждый. Никак не могу понять, что происходит. Последний раз редактировалось Ruffus; 21.07.2008 в 21:57. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:40. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|