Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.05.2008, 21:40
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 1  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
По умолчанию отследить зажатие кнопки

Народ, всем здарова, подскажите плиз как отследить то что пользователь нажал на кнопку и долго ее не отпускает)))
т.е. при обычном клике происходит действие_01, а если пользователь зажал кнопку скажем больше чем на 2 секунды, то выполняется действие_02 ?
я пробовал запустить getTimer но так толком ничего не вышло

Старый 16.05.2008, 21:51
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 2  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Что то типа:
Код:
var intID;

ACTION1 = function ()
{
	trace ("A1");
}

ACTION2 = function ()
{
	trace ("A2");
}

CLIP.onPress = function ()
{
	CLIP.onRelease = ACTION1;
	intID = setInterval(longPress, 2000, null);
}

longPress = function ()
{
	CLIP.onRelease = ACTION2;
}

Старый 16.05.2008, 21:53
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
или
Код:
var time:Number;
but.onPress=function(){
	time=getTimer();
}
but.onRelease=function(){
	if (getTimer() - time	> 2000)
	{
		trace("release");
	}else
	{
		trace("click");
	}
}

Старый 16.05.2008, 22:12
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 4  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
да, спасибо, только действие _02 срабатывает при отпускании кнопки, мне хочется сделать чтоб оно срабатывало при том же нажати....о - как скролл в виндовс - когда клик на стрелке - сдвигается чуть чуть, а когда зажмешь стрелку - скролл плавно передвигается =)

Старый 17.05.2008, 00:16
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>чтоб оно срабатывало при том же нажати..
вообще-то при нажатии, узнать сколько юзер будет держать невозможно
клик по-любому можно определять только при отпускании в течении какого-то интервала
Код:
var intervalID:Number;
var timeOut:Boolean;
but.onPress=function(){
	clearInterval(intervalID);
	timeOut=false;
	intervalID=setInterval(longPress,200);
}
but.onRelease=function(){
	clearInterval(intervalID);
	if(!timeOut)
	{
		trace("click");
	}
}
function longPress(){
	//clearInterval(intervalID);//если не надо чтоб действие повторялось при нажатой 
	timeOut=true;
	trace("longPress");
}

Старый 17.05.2008, 00:56
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 6  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Ого, круто! Я тож вот сижу и с setInterval эксперемнтирую
Если я правильно понял то setInterval исполняется только при нажатой кнопке, так?
Т.е. если кнопка не нажата, функция интервала не работает,так?
Если да то это здорово, поскольку здорово экономит ресурсы =)

Старый 17.05.2008, 02:25
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 7  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Вы спрашиваете про конкретный случай или в общем?
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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