Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   трабла с функцией и setInterval (http://www.flasher.ru/forum/showthread.php?t=152175)

Aleksan007 12.03.2011 21:06

трабла с функцией и setInterval
 
вот кусок кода:

Код AS1/AS2:

tablofunc=function () {
        _root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
};
setInterval(tablofunc, 3000);

функция выводит каждые 3 секунды из массива рендомный элемент, как сделать чтобы эта функция срабатывала когда двигаю мышь!

Dalass13 12.03.2011 21:34

Код AS1/AS2:

_root.onMouseMove = function() {
            setInterval(tablofunc, 3000);
}

будет работать не так как надо Вам, но в общем принцип понятен

mooncar 12.03.2011 21:57

Код AS1/AS2:

this.onMouseMove = function () 
{
        _root.tablo.text = massiv[Math.round((Math.random()*(massiv.length-1)))];
};


Dalass13 12.03.2011 22:02

mooncar, Надо же через 3 секунды обязательно, лучше тогда так сделать:

Код AS1/AS2:

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

кое-что еще забыл, измените код немного иначе интервалы будут суммироваться:

Код AS1/AS2:

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

вот сейчас вообще идеально работает! спасибо!


Часовой пояс GMT +4, время: 16:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.