![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 31
|
после нескольких прокрутов ползунок (scrol_mc) начинает безумствовать, шаг получается уже не 9 а гораздо больше. Сперва всю полосу можно было за 17 движение колеса, потом стает за 7, потом вообще за 3... В чем ошибка, не понимаю...
спасибо. var mouseListener:Object = new Object(); mouseListener.onMouseWheel = function (wheel) { if (wheel < 0) { if (scrol_mc._y <= 576) { scrol_mc._y = scrol_mc._y + 9;} } else { if (scrol_mc._y >= 9) { scrol_mc._y = scrol_mc._y - 9;} } }; Mouse.addListener(mouseListener); if (scrol_mc._y > 576) { scrol_mc._y = 576}; if (scrol_mc._y < 9) { scrol_mc._y = 9}; |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Проверил ваш код. Никакого безумства не заметил. Единственное что, упростил бы слегка:
var speed:Number = 3; var minY:Number = 9; var maxY:Number = 576; Mouse.addListener(this); scroll_mc._y = truncate(minY, maxY, scrol_mc._y); function onMouseWheel(delta):Void { scroll_mc._y = truncate(minY, maxY, scroll_mc._y + speed * delta); } function truncate(min:Number, max:Number, n:Number):Number { return Math.max(min, Math.min(max, n)); } |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Я так подозреваю, что вы пишите на таймлайне и в кадр с кодом заходите несколько раз, тогда каждый заход подписывает вас еще раз на событие от колесика мыши. И на одно движение приходится несколько вызовов обработчика события.
var step:Number = 9; var topLimit:Number = 9; var bottomLimit:Number = 576; this.onMouseWheel = function (wheel:Number) { trace ("q") if (wheel < 0) { if (scrol_mc._y < bottomLimit) { scrol_mc._y += step; } else if (scrol_mc._y > bottomLimit) { scrol_mc._y = bottomLimit } } else { if (scrol_mc._y > topLimit) { scrol_mc._y -= step; } else if (scrol_mc._y < topLimit) { scrol_mc._y = topLimit } } }; Mouse.addListener (this); |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 31
|
to udaaff, код красивый, но не работает
to iNils, stop (); в начале кода - проблема решена. Спасибо! |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
palsany4, scroll потому что с двумя l, потому и не работает.
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 31
|
действительно, не заметил. Все класс! Какой проницательный контингент форума, чудо!
Последний раз редактировалось palsany4; 26.05.2010 в 16:04. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|