PDA

Просмотр полной версии : как переделать код setTimeout


yo3o
28.07.2010, 09:54
у меня есть вот такой код, он делает видимой кнопку через 6 сек

Number = setTimeout (someFunction, 6000);

function someFunction () {

(fo2._visible = true); // через 6 сек.

}

как сделать так чтоб он работал так выводил через 6 потом через 15 и еще раз через 30сек

Хемуль
28.07.2010, 14:37
2 yo3o:
Как-то так...
var timerIntervals:Array = [6, 15, 30];
var currentTimerInterval:Number = 0;
var timer:Number;

refreshTimer();

function someFunction():Void
{
fo2._visible = true;
currentTimerInterval++;
if (currentTimerInterval < timerIntervals.length)
{
refreshTimer();
}
}

function refreshTimer():Void
{
timer = setTimeout(someFunction, timerIntervals[currentTimerInterval] * 1000);
}

yo3o
30.07.2010, 09:46
не работает(((

Хемуль
30.07.2010, 12:28
2 yo3o:
Что не работает? Как вы это определили? Создайте новый проект во Flash и вставьте этот код в кадр, замените fo2._visible = true; на, скажем, trace("TIMER!!!"); и увидите, что всё ОК - я сам проверял.
Загвоздка может быть в
fo2._visible = true;
Скажем, вы не туда код положили и он "не видит" fo2. Я вам дал работающий пример, вроде. Допилите уж одну строчку сами под вашу конкретную задачу.
А, кстати, этот весь процесс не зациклен. Код выполнится через 6, 15 и 30 секунд, но затем это всё не повторится. Может это вы имели в виду, когда говорили, что не работает.
Вы бы больше писали. А то будто на приём к доктору пришли и говорите: "Доктор, у меня это..." Так вам будет очень сложно помочь.