Просмотр полной версии : Никак не понимаю работу функции setInterval
Bitcoolman
29.10.2009, 16:20
Пришел к выводу что setInterval является моим камнем преткновения. Например пишу функцию и хочу что бы она повторялась. Человечек идет слева направо заходит за пределы и появляется в 0 отметке и опять идет слева направо. Мне захотелось сделать так что бы слева он появился только через 5 сек. В конце скрипта пишу setInterva(5000); но она не работает(((((
Заранее спасибо))
lexa2000lexa
29.10.2009, 16:22
а вы почитайте хелп, может тогда станет ясней. Что значит запись setInterva(5000)?
что дожно произойти через 5 сек, в этой записе?
Bitcoolman
29.10.2009, 16:24
Так Я читал и нетолько в хелпе... У меня получается такой вот код
this.onEnterFrame = function():Void {
mc._x += 10;
if (mc._x>800+(mc._width/2)) {
mc._x = 0-(mc._width);
}
};
setInterval(mc,5000);
что не так???
Добавлено через 1 минуту
тока он не робит:(
point111
29.10.2009, 16:46
если в кадре прописать
stop();
aaa = setInterval(function () {
play();
clearInterval(aaa);
}, 3000);
setInterval каждые три секунды будет запускать play(), но т.к. одновременно он запустит свое уничтожение, то второго раза не будет
Bitcoolman
29.10.2009, 16:56
Stop на это не работает. И даже за исключением этого все равно это не будет работать...
var l:Number = 800 + mc._width / 2;
onEnterFrame = onEnterFrameHandler;
function onEnterFrameHandler():Void
{
mc._x += 10;
if (mc._x > l) {
mc._x = -mc._width;
delete onEnterFrame;
setTimeout(timeout_completeHandler, 5000);
}
}
function timeout_completeHandler():Void
{
onEnterFrame = onEnterFrameHandler;
}
point111
29.10.2009, 17:24
Stop на это не работает. И даже за исключением этого все равно это не будет работать...
читай внимательно ВЕСЬ мой пост, я не решаю твою проблему, я объясняю как работает setinterval, я отвечаю на заголовок темы. И, кстати, это работает, я выдернул это из рабочего проекта.
iflamberg
29.10.2009, 17:31
var intervalID:Number;
function cycle() {
mc._x += 10;
if (mc._x>800+(mc._width/2)) {
mc._x = 0-(mc._width);
_root.onEnterFrame=null;
intervalID=setInterval (startAgain,5000)
}
}
function startAgain () {
clearInterval (intervalID);
_root.onEnterFrame = cycle;
}
_root.onEnterFrame = cycle;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.