vg2k
01.03.2007, 18:03
Как я понял все задержки во флэше реализовываются через setInterval с вызовом функции.
У меня, наверное руки не оттуда растут, этот сетИнтервал так и не заработал... хоть примеров насмотрелся в инете и делал почти так же.
В любом случае бывают ситуации (у меня сейчас такая) когда алгоритм будет намного лучше смотреться и удобнее писать, если задержки будут НЕ ИМИТИРОВАТЬСЯ вызовом функций и НЕ разбрасывать один единый кусок кода по десятку callback функций.
то есть, например цикл:
for (i=0; i<n; i++)
{
// действия {}
sleep(5); // задержка 5 сек
}
Попытался это реализовать:
//////////////////////
// Это реализация sleep-a раз и на всегда
function sleep(time)
{
int_id = setInterval(sleep_empty_call, time);
}
function sleep_empty_call()
{
log_field.text += "sleep_empty_call()\r"; // для отладки присобачил
updateAfterEvent();
clearInterval(int_id);
}
//
//////////////////////
// это пример алгоритма
for(var i=0; i<5; i++)
{
log_field.text += i+"\r";
sleep(5);
}
В результате в log_field сначала вываливается все 5 циклов из
log_field.text += i+"\r";
потом спутся паузу все 5 циклов
log_field.text += "sleep_empty_call()\r";
Что не так ? нужна помощь.
То есть мне бы заставить не выполняться(приостановиться) алгоритм на X времени... а с setInterval алгоритм сразу продолжает выполняться и через указанное время абсолютно независимо стартует другая "инстанция", выполняющая callback функцию.
если через getTimer() , отказавшись от setInterval, брать время и гнать цикл:
do {} while (prev_time_stamp+sleep_time > getTimer())
то плеер начинает негодавать по поводу загрузки и кидается ноутисами с предложениями прекратить выполнение
У меня, наверное руки не оттуда растут, этот сетИнтервал так и не заработал... хоть примеров насмотрелся в инете и делал почти так же.
В любом случае бывают ситуации (у меня сейчас такая) когда алгоритм будет намного лучше смотреться и удобнее писать, если задержки будут НЕ ИМИТИРОВАТЬСЯ вызовом функций и НЕ разбрасывать один единый кусок кода по десятку callback функций.
то есть, например цикл:
for (i=0; i<n; i++)
{
// действия {}
sleep(5); // задержка 5 сек
}
Попытался это реализовать:
//////////////////////
// Это реализация sleep-a раз и на всегда
function sleep(time)
{
int_id = setInterval(sleep_empty_call, time);
}
function sleep_empty_call()
{
log_field.text += "sleep_empty_call()\r"; // для отладки присобачил
updateAfterEvent();
clearInterval(int_id);
}
//
//////////////////////
// это пример алгоритма
for(var i=0; i<5; i++)
{
log_field.text += i+"\r";
sleep(5);
}
В результате в log_field сначала вываливается все 5 циклов из
log_field.text += i+"\r";
потом спутся паузу все 5 циклов
log_field.text += "sleep_empty_call()\r";
Что не так ? нужна помощь.
То есть мне бы заставить не выполняться(приостановиться) алгоритм на X времени... а с setInterval алгоритм сразу продолжает выполняться и через указанное время абсолютно независимо стартует другая "инстанция", выполняющая callback функцию.
если через getTimer() , отказавшись от setInterval, брать время и гнать цикл:
do {} while (prev_time_stamp+sleep_time > getTimer())
то плеер начинает негодавать по поводу загрузки и кидается ноутисами с предложениями прекратить выполнение