Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Как сделать задержку перед нажатием кнопки? (http://www.flasher.ru/forum/showthread.php?t=130259)

jimmilamer 21.09.2009 20:56

Как сделать задержку перед нажатием кнопки?
 
Подскажите пожалуйста как сделать так, что бы после наведения курсора на кнопку, состояние кнопки Over срабатывало только через 1с? К примеру, навёл курсор на кнопку, прошла 1 секунда и только потом она покраснела.

mooncar 21.09.2009 21:15

Убираете символ класса Button, берете для этого символ класса MovieClip.
Называете, его, допустим, btn.
Делаете в нем два кадра (если интересует только изменение при наведении), стопите их.
Во втором кадре кнопки-мувика у вас должен быть красный фон.
И теперь пишите:
Код AS1/AS2:

btn.onRollOver = function() {
  over = setTimeout (inRed, 1000);
};
 
function inRed() {
 //действия по покраснению:
 btn.gotoAndStop(2);
}

Спустя 1 с после самого события onRollOver кнопка-мувик у вас перейдет в кадр 2 и покраснеет.
Ну и на onRollOut поставьте переход кнопки назад, на 1 кадр, на onRelease то, что нужно.

Добавлено через 4 минуты
Только имейте ввиду, что если вы хотите, чтобы если у вас вдруг увели с кнопки курсор мыши, а кнопка еще не успела покраснеть, то чтобы она так и не покраснела, нужно будет сделать так:
Код AS1/AS2:

btn.onRollOut = function() {
  this.gotoAndStop(1);
  clearTimeout(over);
};



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

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