Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ограничить выделенный элемент в list (http://www.flasher.ru/forum/showthread.php?t=204980)

netoniel 15.11.2013 14:53

Ограничить выделенный элемент в list
 
Привет,

Как можно сделать так, чтобы выделенный элемент в list не убегал за пределы? Вот как тут http://www.studia-kuhni.ru/exec.swf

Akopalipsis 15.11.2013 15:08

Обьясните немного подробней, а то не понятно, что значит - "не убегал за пределы".

КорДум 15.11.2013 15:13

Маску сверху положить. Или scrollRect использовать.

netoniel 15.11.2013 17:16

хотел бы без изменения скорости, просто ограничить selectedIndex, который уползает то вверх то вниз при прокручивании.

Добавлено через 34 секунды
Цитата:

Сообщение от КорДум (Сообщение 1152554)
Маску сверху положить. Или scrollRect использовать.

а как с маской это делается?

КорДум 15.11.2013 18:52

Никто Вас тут не понял. И Вы ошиблись, при скролле в Вашем примере, если слайдер мышкой схватить, выделенный элемент улетает за пределы, никаких ограничений нет. Если скроллить колесиком, то выделение элемента просто переносится на следующий-предыдущий. Никаких ограничений нет и здесь.

netoniel 15.11.2013 19:22

Цитата:

Сообщение от КорДум (Сообщение 1152574)
Никто Вас тут не понял. И Вы ошиблись, при скролле в Вашем примере, если слайдер мышкой схватить, выделенный элемент улетает за пределы, никаких ограничений нет. Если скроллить колесиком, то выделение элемента просто переносится на следующий-предыдущий. Никаких ограничений нет и здесь.

Простите, что плохо изъясняюсь. Как этого добиться, чтобы при прокручивании колесиком вниз, выделение было на пятом по счету элементу и третьим если крутить вверх?

КорДум 15.11.2013 21:57

Нужно подписаться на событие колеса мыши и перемещать выделение на другой пункт, исходя из event.delta. Попробуйте сами.

netoniel 15.11.2013 22:53

Цитата:

Сообщение от КорДум (Сообщение 1152598)
Нужно подписаться на событие колеса мыши и перемещать выделение на другой пункт, исходя из event.delta. Попробуйте сами.

Я так и сделал...

Код AS3:

if (event)  {        
 if ((event.delta>=1)&&(ScrollBox.selectedIndex>0)) {ScrollBox.selectedIndex = ScrollBox.selectedIndex - 1;
}
if ((event.delta<=-1)&&(ScrollBox.selectedIndex<100)) {ScrollBox.selectedIndex = ScrollBox.selectedIndex + 1;}
          selectx = ScrollBox.selectedIndex;
                  }

Даже verticalLineScrollSize менял, чтобы не убегало. Главный вопрос то - как сделать, чтобы selectedIndex был всегда перед глазами при прокручивании колесиком?


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

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