Форум 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)
-   -   Временное блокирование нажатия (http://www.flasher.ru/forum/showthread.php?t=97603)

Роман Вадимович 25.06.2007 12:33

Временное блокирование нажатия
 
Объек:. Грубо говоря есть флеш-ролик, на котором 50 кнопок. Каждая кнопка нажимается, что сопровождается анимационным эффектом.
Задача - нужно ограничить частоту нажатий, т.е. после нажатия на любую кнопку в течении 0,2 секунды - все кнопки не реагируют на нажатия.

Чтобы такое сделать у меня есть 2 тупых решения:
1) Наложить на вершний уровень, на всю сцену большую прозрачную прямоугольную кнопку, которая ничего не делает. И отображать её после любого нажания в течении указанного времени.
2) Завести глобальную переменную, например enableClick и перед нажатием любой кропки анализировать её состояние.

Подскажите пожалуйста есть ли более правильный способ решить указанную проблему.

screamge 25.06.2007 12:35

Можно ещё перебирать в цикле имена кнопок и выставлять значение enable в false

iNils 25.06.2007 12:42

Я выбираю 1-ый способ.

Kikasso 25.06.2007 12:44

например так, через prototype, если хочется повыступать:
Код:

function lockButtons(){
Button.prototype.enabled = Button.prototype.useHandCursor = false;
setTimeout(unlockButtons, 1000);
}
function unlockButtons(){
Button.prototype.enabled = Button.prototype.useHandCursor = true;
}
my_btn.onRelease = function(){
 lockButtons();
 trace( 'clicked');
}

Но кнопка поверх, только без лапки, вполне себе нормальный способ, и возни никакой.

Роман Вадимович 25.06.2007 12:57

Спасибо, буду пробовать.
Вариант с прямоугольной кнопкой не нравится по следующей причине. Дело в том что данная анимация запускается на ПК с установленной операционкой Линукс и функционирование флеш плеера, к сожалению немного отличается от плеера для винды.
После выполнения следующего кода:
_invisibleButoon._visible=1;
Кнопка залитая цветом со значением Alpha = 0 - всё таки отображается еле заметной пеленой белого цвета. Такое ощущение что наложили почти прозрачную кальку.
Ещё раз спасибо за помощь!

iNils 25.06.2007 13:01

А все потому, что не надо делать кнопку прозрачной. Достаточо обозначить только кадр HIT

Роман Вадимович 25.06.2007 13:05

Точно, супер! То что нужно!

iNils 25.06.2007 13:08

Кстати, а вы уверены, что проблема в линуксе, а не в том, что стоит 16-бит на цвет для монитора?

Роман Вадимович 25.06.2007 13:12

Я предполагаю, что вы опять правы :).
В toach панели, использованной для данной анимации, действительно предусмотрено отображение только 16-ти битного цвета. И скорее всего плеер подбирает максимально подходящий цвет из существующих.
Почему подумал на ликукс - потому что ролик проигрывается по-разному на виндовом компе и на панели.

Kikasso 25.06.2007 13:13

Вы все-таки поаккуратнее с типами данных, не путайте цифру с правдой. Тут конвертнется, там конвертнется, а потом будете ошибку искать.
Код:

_invisibleButoon._visible= true;


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

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