Просмотр полной версии : глюк с inter=setTimeout();
есть презентаха, внутри которой внутри мувиклипа есть видео, которое нужно спустя какое то время зацикливать
стоит код
stop();
function timer() {
play();
clearTimeout(timer);
}
inter=setTimeout(timer, 69000 );
1.не уверен, правильно ли я очищаю setTimeout
2. при переходе в разделы, с другим видео, бывают случаи соскока на следущий раздел по таймлайну. мне кажется, что это как то связано именно с тем, что при переходе на другой раздел, счетчик не пропадает, и как то действует на _root. можно как то в руте, при входе на раздел, чистить этот скрипт?
не обращайте внимания на мой мегаязык) просто не знаю, как еще описать проблему, я не программист
Infectedcell
09.07.2008, 18:41
clearTimeout(inter)
если мы конечно об одном и том же ;)
Вы же вроде пытаетесь тайаут убить? так зачем под слиртаймаут подставляете имя функции?
1. setTimeout сам себя очищает
2. Не понятно.
2Infectedcell спасибо
2iNils
тогда зачем вобще существует clearTimeout ? из хелпа его вытащил)
можно както глобально очищать из _root этот скрипт, не прибегая к точному обозначению его местоположения?
1. setTimeout сам себя очищает
В AS3 без clearTimeout этот таймаут продолжает висеть в памяти. Вполне возможно, что и в AS1/AS2 тоже.
2 __etc
как его из памяти вычистить, если при переходе на другой раздел(другая метка в _root) clearTimeout не может сработать, т.к. функция timer не вызывается?
тогда зачем вобще существует clearTimeout ? из хелпа его вытащил)Что бы была возможность удалить таймаут, если он вам стал вдруг не нужен.
В AS3 без clearTimeout этот таймаут продолжает висеть в памяти. Вполне возможно, что и в AS1/AS2 тоже.Так в AS3 вообще проблема с чисткой памяти.
Так в AS3 вообще проблема с чисткой памяти.
Это и не проблема, собственно. Никто и не говорил, что таймаут будет удален из памяти, даже после выполнения.
2__etc и iNils
вы мне поможете вычистить это из памяти в АС2?)) а то вы уже спором увлеклись)
edo, InfectedCell уже написал.
ааа....т.е. если я тупо в руте пропишу clearTimeout(inter)
он вычиститься у меня из памяти, не смотря на то, что сама функция была внутри мувиклипа, которого в тот момент уже нет на таймлайне?
А вы в руте создавайте inter.
Пример из хелпа:
var my_timedProcess:Number = setTimeout(my_delayedFunction, 2000, "two second delay");
function my_delayedFunction (arg1) {
trace(arg1);
}
var escListener:Object = new Object();
escListener.onKeyDown = function() {
if (Key.isDown(Key.ESCAPE)) {
clearTimeout(my_timedProcess);
}
};
Key.addListener(escListener);
Отсюда все ясно - когда по истечении времени вызывается функция my_delayedFunction, setTimeout самоочищается, и никаких дополнительных команд не нужно. Если нажать во время задержки клавишу escape, для очистки этого активного таймаута используется clearTimeout.
2__etc
а я не знаю, как мне в руте создать на основе этой паузы цикл. тем более, что в некоторых mc видеофайлов несколько, и разной длинны. когда один заканчивается, должен пойти другой и т.д. а вставлено все тупо компонентом FLVPlayback
я не программер, мне не сделать по другому)
могу прикрепить исходник, может поможете разобраться
2 musat
это слишком сложно для художника)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.