Показать сообщение отдельно
Старый 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.