|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+4 19.02.09]
Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
|
нельзя нажать пока не прошел интервал... как?
всем привет, сначала хочу сказать всем спасибо, а так же спасибо всему форуме, столько узнал при написание флэш сайта, и значительно поднял свой уровень!!!
а теперь к делу... вот в чем задача: есть 4 кнопки, при нажатии на кнопки, происходит разная программная анимация. Вопрос: как сделать, что бы при нажатии на одну из кнопок, нельзя было нажать на другие в течении 2 секунд (допустим). вот для примерчка код: 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: сорри если есть ошибки, устал оч. |
|
|||||
Модрон-ветеринар
|
Можно так:
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 минут 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; } Или вот это вариант, отключает реагирование кнопки на все события. Может быть полезно, если нужно вообще деактивировать повдение, в том числе и rollOver, например, если на это событие есть что-то типа анимации кнопок... 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; } Последний раз редактировалось mooncar; 31.10.2009 в 00:05. |
|
|||||
[+4 19.02.09]
Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
|
ммм... спасибо, ещё не пробовал, пока что другое дописываю не могу оторваться...
отлично оптимизировали мой код во втором своём варианте, но к сожалению он не подойдет к моему случаю, там куда всё сложней.. (а может и я не понимаю просто ))) зато в третьем своём примере вы указали что можно совсем отключить функции на кнопках на время... как оформить ваш третий прием, для моего кода? который я указал в первом посте. спасибо |
|
|||||
Модрон-ветеринар
|
Третий код будет работать без изменений и с вашими исходными объектами, если кнопки лежат на _root и код записан в кадре там же. Проверено.
Если кнопки где-то еще, перепишите пути. Например, если код и кнопки внутри мувика, то самый простой вариант записать код в кадре внутри мувика с кнопками и заменить _root на this. В общем, все рабочее, только подпилите под свои условия, если что. Вот эта запись вам понятна? Последний раз редактировалось mooncar; 31.10.2009 в 00:14. |
|
|||||
[+4 19.02.09]
Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
|
стараюсь понять, но что то голова уже не тянет )))
можно маленький примерчик ) на моём исходном коде |
|
|||||
Модрон-ветеринар
|
Второй раз повторяю - все три варианта - это подпиленный ВАШ код.
Добавлено через 1 минуту Вот тут: var tween_menu:Tween = new Tween(this, '_x', Elastic.easeOut, this._x, 100 * this.num, 1, true); this.num = 1,2,3 |
|
|||||
[+4 19.02.09]
Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
|
да всё ваши записи понятные но условия
не будут подходить, так как у меня вот так tween прописан var tween_menu:Tween = new Tween(menu_mc, "_y", Elastic.easeOut, menu_mc._y, Stage.height/2-146, 1, true); ...вот если туплю сразу извиняюсь |
|
|||||
Модрон-ветеринар
|
Ну есть наверное какая-то зависимость между номером кнопки и Stage.height/2-146 ?
Вот ее и нужно использовать. |
|
|||||
[+4 19.02.09]
Регистрация: Dec 2007
Адрес: Красноярск
Сообщений: 71
|
нет абсолютно не какой зависимости
там такая бешеная анимация.... ужос просто... иногда даже двойная всё таки покажите пожалуйста именно на первом примере моего кода, как использовать ваше полное отключение?? Последний раз редактировалось sogologo; 31.10.2009 в 00:32. Причина: додумал |
|
|||||
Модрон-ветеринар
|
Хорошо, сейчас.
|
Часовой пояс GMT +4, время: 06:20. |
|
« Предыдущая тема | Следующая тема » |
Теги |
button , onRelease , setinterval |
Опции темы | |
Опции просмотра | |
|
|