Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   scrolling (http://www.flasher.ru/forum/showthread.php?t=134376)

ZergMaster 28.12.2009 18:22

scrolling
 
люди, помогите.
Весь день бьюсь головой об стенку, пытаясь сделать примитивнейший скроллинг!.. (((

Пробовал через MOUSE_WHEEL но там есть огромная проблема, которая заключается в том, что фиг знает как задать вертикальные границы скроллинга. Ну, верхнюю понятно как, а вот нижнюю... Вот код функции прокрутки:

Код AS3:

var varDif=forScroll.scrollMov.height-350;
forScroll.scrollMov.scrollRect = new Rectangle(0, 0, forScroll.scrollMov.width, 350);
forScroll.scrollMov.cacheAsBitmap = true;
var rect:Rectangle = forScroll.scrollMov.scrollRect;
 
addEventListener(MouseEvent.MOUSE_WHEEL, scrolling);
  function scrolling(event:MouseEvent):void
        {
 
        if(event.delta >0) //если колесико вверх
                {
 
            if(rect.y>0) {
                        rect.y -= 1
 
                        }
                        forScroll.scrollMov.scrollRect = rect;
                }
        if(event.delta <0) //если колесико вниз
                {
                if(rect.y < 0-varDif) //моя жалкая попытка ограничить нижний скроллинг
                {
 
                        rect.y += 1;
                    forScroll.scrollMov.scrollRect = rect;
                }
        }
        }

но эта rect какая-то непонятная. Отвечает за строки.. А ведь нужны пикселы.

Добавлено через 31 час 41 минуту
что, неужто никто не может помочь?
Я перехожу со второго. Там все так было просто.
Неужели в AS3 нет способа просто отловить событие колесика мышки и сделать по нему все, что хочешь? Так, чтобы это было по аналогии с MouseEvent.CLIK

Ой, или я туплю... и addEventListener(MouseEvent.MOUSE_WHEEL, scrolling) это то самое и есть. Гы.

Добавлено через 36 часов 16 минут
вобщем я осознал свою тупость. Все-таки надо спать иногда... Размещаю код для скроллига (scroll) содержимого неизвестного размера под маской, мало ли кому понадобится в очередном приступе тупняка:
Код AS3:

/*переменная, узнающая разницу между высотой маски и высотой подгружаемого в нее содержимого. Это нужно для того, чтобы ограничить прокрутку вниз. muv - контэйнер, в котором все лежит, masker - клип-маска, scr - прокручиваемое содержимое*/
var varDif= muv.masker.height-muv.scr.height;
//добавляем слушатель на прокрутку колесика
muv.addEventListener(MouseEvent.MOUSE_WHEEL, scrolling);
  function scrolling(event:MouseEvent):void
        {
 
        if(event.delta >0) //если колесико вверх
                {
                        //ограничиваем прокрутку вниз верхней границей маски
                        if(muv.scr.y<0) {
                                              muv.scr.y+=5
                                              };
                };
        if(event.delta <0) //если колесико вниз
                {
                        //ограничиваем прокрутку вверх нижней границей маски
                        if(muv.scr.y>varDif) {
                                                    muv.scr.y-=5
                                                    };
                }
        }

Добавлено через 36 часов 20 минут
единственный и довольно существенный минус состоит в том, что в данном случае скроллится в первую очередь страница, а потом уже содержимое. Было бы круто осуществлять захват скролллинга полностью, и я точно знаю, что это возможно, интересно только как.

ChuwY 30.12.2009 07:51

http://www.flasher.ru/forum/showthread.php?t=131025

etc 30.12.2009 08:19

Название темы не отражает сути вопроса.


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

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