Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: как сделать задержку по времени?
Flash Zone Forum > Macromedia Flash > Начинающим
Polar Bear
собственно задачко... есть менюхо круглое.. которое врещеццо при нажатии на его части надо бы сделать так, чтобы после нажатия происходила задержка приметно в секунду..

код к клипу:
onClipEvent(load){
rot=0;
}
onClipEvent(enterFrame){
rotation = (rot-_rotation)*.2;
_rotation+=rotation;
}

к одной из кнопок..
on (press) {
_root.menu_mc.rot=180;
}

воот.. если кто знает помогите...
Polar Bear
спс.. разобрался сам ))
onClipEvent(load){
rot=0;
}
onClipEvent(enterFrame){
function go()
{
rotation = (rot-_rotation)*.2;
_rotation+=rotation;
}
setInterval(go,2900);
}

но енто происходит тока 1 раз.. а как чтобы каждый раз?
MustLive
Цитата
собственно задачко... есть менюхо круглое.. которое врещеццо при нажатии на его части надо бы сделать так, чтобы после нажатия происходила задержка приметно в секунду..

Polar Bear

Одним из вариантов решения данной задачи является использование setInterval.

Задержка в 1 секунду при нажатии:
Код
function rotate() {
_root.menu_mc.rot=180;
clearInterval(rotInterval);
}

// на кнопке
on (press) {
rotInterval = setInterval(rotate, 1000);
}
MustLive
Пока я написал, ты уже запостил, что сам разобрался.

Цитата
спс.. разобрался сам ))

Молодец. Так и нужно - всегда старайся сам разобраться. Причём начинай разбираться ещё до того, как запостил вопрос (особенно элементарный) на форум wink.gif.

Замечу, что алгоритм ты не до конца проработал - сравни как я использую setInterval, с тем как его используешь ты.

Если тебе нужно однократно сделать задержку при нажатии - как ты и писал, то нужно сделать так как приведено в моём примере. С использованием clearInterval. Иначе у тебя будет постоянно повторяться событие. Также обрати внимание, что 2900 - это 2,9 с, а 1000 - 1 с. И если тебе нужна задержка в одну секунду, то указывай 1000 при установке интервала.

Также не стоит устанавливать интервал в onClipEvent(enterFrame), раз тебе нужно при нажатии, тем более без использования clearInterval - у тебя ежесекундно будет новый интервал задаваться (и оставаться в памяти). Это может сильно напрячь компьютер. Функцию для вызова в setInterval также не нужно размещать в onClipEvent(enterFrame), её стоит вынести отдельно в кадр, как и другие функции.

Цитата
если есть другие идеи то предлагайте ))

Использовать setInterval - это оптимальное решение. При этом не забывай об использовании clearInterval.
Русская версия IP.Board © 2001-2011 IPS, Inc.