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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.10.2009, 23:20
sogologo вне форума Посмотреть профиль Отправить личное сообщение для sogologo Найти все сообщения от sogologo
  № 1  
Ответить с цитированием
sogologo
[+4 19.02.09]

Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
Question нельзя нажать пока не прошел интервал... как?

всем привет, сначала хочу сказать всем спасибо, а так же спасибо всему форуме, столько узнал при написание флэш сайта, и значительно поднял свой уровень!!!

а теперь к делу...

вот в чем задача:
есть 4 кнопки, при нажатии на кнопки, происходит разная программная анимация.
Вопрос:
как сделать, что бы при нажатии на одну из кнопок, нельзя было нажать на другие в течении 2 секунд (допустим).

вот для примерчка код:
Код AS1/AS2:
mybtn1.onRelease = function () {
var tween_menu:Tween = new Tween(mybtn1, "_x", Elastic.easeOut, mybtn1._x, 100, 1, true);
}
 
mybtn2.onRelease = function () {
var tween_menu:Tween = new Tween(mybtn2, "_x", Elastic.easeOut, mybtn2._x, 200, 1, true);
}
 
mybtn3.onRelease = function () {
var tween_menu:Tween = new Tween(mybtn3, "_x", Elastic.easeOut, mybtn3._x, 300, 1, true);
}
 
mybtn4.onRelease = function () {
var tween_menu:Tween = new Tween(mybtn4, "_x", Elastic.easeOut, mybtn4._x, 400, 1, true);
}
за ранее спасибо за ответ.

PS: сорри если есть ошибки, устал оч.

Старый 30.10.2009, 23:40
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно так:
Код AS1/AS2:
var allowTween:Boolean = true ;
var timeOut:Number = 2000;
 
function allowTweenToTrue () {
	allowTween = true ;
}
 
mybtn1.onRelease = function () {
	if (allowTween ) {
		var tween_menu:Tween = new Tween(mybtn1, "_x", Elastic.easeOut, mybtn1._x, 100, 1, true);
		allowTween = false ;
		var id:Number = setTimeout(allowTweenToTrue, timeOut);		
	}
}
 
mybtn2.onRelease = function () {
	if (allowTween ) {
		var tween_menu:Tween = new Tween(mybtn2, "_x", Elastic.easeOut, mybtn2._x, 200, 1, true);
		allowTween = false ;
		var id:Number = setTimeout(allowTweenToTrue, timeOut);		
	}
}
 
mybtn3.onRelease = function () {
	if (allowTween ) {
		var tween_menu:Tween = new Tween(mybtn3, "_x", Elastic.easeOut, mybtn3._x, 300, 1, true);
		allowTween = false ;
		var id:Number = setTimeout(allowTweenToTrue, timeOut);		
	}
}
 
mybtn4.onRelease = function () {
	if (allowTween ) {	
		var tween_menu:Tween = new Tween(mybtn4, "_x", Elastic.easeOut, mybtn4._x, 400, 1, true);
		allowTween = false ;
		var id:Number = setTimeout(allowTweenToTrue, timeOut);		
	}
}
Но лучше сделать одну общую функцию для компактности и переносимости.

Добавлено через 8 минут
Код AS1/AS2:
import mx.transitions.Tween;
 
var allowTween:Boolean = true ;
var timeOut:Number = 2000;
 
function allowTweenToTrue () {
	allowTween = true ;
}
 
function mybtnRelease () {
	if (allowTween) {	
		var tween_menu:Tween = new Tween(this, '_x', Elastic.easeOut, this._x, 100 * this.num, 1, true);
		allowTween = false ;
		var id:Number = setTimeout(allowTweenToTrue, timeOut); //по истечении врмени timeOut триггер allowTween снова будет true и кнопки станут активными
	}
}
 
for (i = 1; i <=4; i++) {
	_root['mybtn' + i].num = i;
	_root['mybtn' + i].onRelease = mybtnRelease;
}
Добавлено через 19 минут
Или вот это вариант, отключает реагирование кнопки на все события.
Может быть полезно, если нужно вообще деактивировать повдение, в том числе и rollOver, например, если на это событие есть что-то типа анимации кнопок...
Код AS1/AS2:
import mx.transitions.Tween;
var timeOut:Number = 2000;
 
function mybtnRelease () {
	var tween_menu:Tween = new Tween(this, '_x', Elastic.easeOut, this._x, 100 * this.num, 1, true);
	manageBtns(false);
	var id:Number = setTimeout(manageBtns, timeOut, true);		
}
 
function manageBtns (enab:Boolean) {
	for (i = 1; i <=4; i++) {
		_root['mybtn' + i].enabled = enab;
	}	
}
 
for (i = 1; i <=4; i++) {
	_root['mybtn' + i].num = i;
	_root['mybtn' + i].onRelease = mybtnRelease;
}
Естественно, _root нужно заменить, если кнопки и код принадлежат другому таймлайну.


Последний раз редактировалось mooncar; 31.10.2009 в 00:05.
Старый 31.10.2009, 00:07
sogologo вне форума Посмотреть профиль Отправить личное сообщение для sogologo Найти все сообщения от sogologo
  № 3  
Ответить с цитированием
sogologo
[+4 19.02.09]

Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
ммм... спасибо, ещё не пробовал, пока что другое дописываю не могу оторваться...

отлично оптимизировали мой код во втором своём варианте, но к сожалению он не подойдет к моему случаю, там куда всё сложней.. (а может и я не понимаю просто )))

зато в третьем своём примере вы указали что можно совсем отключить функции на кнопках на время... как оформить ваш третий прием, для моего кода? который я указал в первом посте.

спасибо

Старый 31.10.2009, 00:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Третий код будет работать без изменений и с вашими исходными объектами, если кнопки лежат на _root и код записан в кадре там же. Проверено.
Если кнопки где-то еще, перепишите пути. Например, если код и кнопки внутри мувика, то самый простой вариант записать код в кадре внутри мувика с кнопками и заменить _root на this.
В общем, все рабочее, только подпилите под свои условия, если что.

Вот эта запись вам понятна?
Код AS1/AS2:
for (i = 1; i <=4; i++) {
	_root['mybtn' + i].num = i;
	_root['mybtn' + i].onRelease = mybtnRelease;
}


Последний раз редактировалось mooncar; 31.10.2009 в 00:14.
Старый 31.10.2009, 00:14
sogologo вне форума Посмотреть профиль Отправить личное сообщение для sogologo Найти все сообщения от sogologo
  № 5  
Ответить с цитированием
sogologo
[+4 19.02.09]

Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
стараюсь понять, но что то голова уже не тянет )))

можно маленький примерчик )

на моём исходном коде

Старый 31.10.2009, 00:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Второй раз повторяю - все три варианта - это подпиленный ВАШ код.

Добавлено через 1 минуту
Вот тут:
Код AS1/AS2:
var tween_menu:Tween = new Tween(this, '_x', Elastic.easeOut, this._x, 100 * this.num, 1, true);
this = mybtn1, mybtn2,...
this.num = 1,2,3

Старый 31.10.2009, 00:20
sogologo вне форума Посмотреть профиль Отправить личное сообщение для sogologo Найти все сообщения от sogologo
  № 7  
Ответить с цитированием
sogologo
[+4 19.02.09]

Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
да всё ваши записи понятные но условия

Код AS1/AS2:
this.num = 1,2,3
не будут подходить, так как у меня вот так tween прописан

Код AS1/AS2:
var tween_menu:Tween = new Tween(menu_mc, "_y", Elastic.easeOut, menu_mc._y, Stage.height/2-146, 1, true);
и там много таких вещей из-за этого я в тупике, как использовать полное отключения из вашего примера

...вот если туплю сразу извиняюсь

Старый 31.10.2009, 00:28
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну есть наверное какая-то зависимость между номером кнопки и Stage.height/2-146 ?
Вот ее и нужно использовать.

Старый 31.10.2009, 00:31
sogologo вне форума Посмотреть профиль Отправить личное сообщение для sogologo Найти все сообщения от sogologo
  № 9  
Ответить с цитированием
sogologo
[+4 19.02.09]

Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
нет абсолютно не какой зависимости

там такая бешеная анимация.... ужос просто... иногда даже двойная

всё таки покажите пожалуйста именно на первом примере моего кода, как использовать ваше полное отключение??


Последний раз редактировалось sogologo; 31.10.2009 в 00:32. Причина: додумал
Старый 31.10.2009, 00:37
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Хорошо, сейчас.

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

Теги
button , onRelease , setinterval
Опции темы
Опции просмотра

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

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


 


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


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