Просмотр полной версии : трабла с функцией и setInterval
Aleksan007
12.03.2011, 21:06
вот кусок кода:
tablofunc=function () {
_root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
};
setInterval(tablofunc, 3000);
функция выводит каждые 3 секунды из массива рендомный элемент, как сделать чтобы эта функция срабатывала когда двигаю мышь!
Dalass13
12.03.2011, 21:34
_root.onMouseMove = function() {
setInterval(tablofunc, 3000);
}
будет работать не так как надо Вам, но в общем принцип понятен
this.onMouseMove = function ()
{
_root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
};
Dalass13
12.03.2011, 22:02
mooncar, Надо же через 3 секунды обязательно, лучше тогда так сделать:
tablofunc = function () {
_root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
block = false;
};
_root.onMouseMove = function() {
if (block==false) {
block = true;
setInterval(tablofunc, 3000);
}
}
Aleksan007
12.03.2011, 22:09
нее, неправильно работает! когда водишь мышь элементы массива засовываются в текстовое поле со скоростью 30 fps, а мне нужно чтобы когда веду мышь, в текстовом поле появился один элемент массива, простоял там 5 секунд и потом появился следующий, если мышь не трогаю то в текстовое поле выводится сообщение типа: двигай мышь!
Dalass13
12.03.2011, 22:11
более подходящий пример написан выше
Aleksan007
12.03.2011, 22:13
Dalass13, воо, спасибо! просто ты быстрее написал свое сообщение чем я свое!
Dalass13
13.03.2011, 12:47
кое-что еще забыл, измените код немного иначе интервалы будут суммироваться:
tablofunc = function () {
_root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
clearInterval(myInterval);
block = false;
};
_root.onMouseMove = function() {
if (block==false) {
myInterval = setInterval(tablofunc, 3000);
block = true;
}
}
Aleksan007
13.03.2011, 14:52
вот сейчас вообще идеально работает! спасибо!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.