PDA

Просмотр полной версии : Скроулинг колесом в подгружаемых swf


PRO100Light
04.02.2013, 02:11
Значит, подгружаются разные и выгружаются разные swf в основной контейнер. Скрол у всех одинаковый. По началу все плавно, но после загрузки других swf скорость скрола увеличивается. Я так понимаю это из-за delta... Как справится?
var mouseListener = new Object();
mouseListener.onMouseWheel = function (delta)
{
if (scroll_middle._y <=0) {scroll_middle._y = 0}
if (scroll_middle._y + scroll_middle._height >= scrollbar._y + scrollbar._height -3) {scroll_middle._y = scrollbar._y + scrollbar._height -3-scroll_middle._height}

if (delta <= 0) {
if (scroll_middle._y + scroll_middle._height<= scrollbar._y + scrollbar._height -3)
{
scroll_middle._y = scroll_middle._y + 3;
}
}

else {
if (delta > 0)
{
scroll_middle._y = scroll_middle._y - 3;
}
}
calc();
};
Mouse.addListener(mouseListener);

Tails
04.02.2013, 10:27
В delta указано количество строк, которые должны проматываться. Всё остальное - ваши расчёты.
Сдвигайте контейнер по y, на высоту одного контейнера * delta

PRO100Light
06.02.2013, 01:01
не помогает...

dark256
06.02.2013, 01:09
Значит, подгружаются разные и выгружаются разные swf в основной контейнер. Скрол у всех одинаковый. По началу все плавно, но после загрузки других swf скорость скрола увеличивается. Я так понимаю это из-за delta... Как справится?


Mouse.addListener(mouseListener)

При подгрузке ДРУГОЙ SWF вы мышь отписываете от листенера?
Как-то так вот:
Mouse.removeListener(mouseListener)

То есть у вас постоянно добавляются слушатели колеса мышки, которые всем стадом и кидают скроллеру свои дельты.