Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Настройка IDE-шного ComboBox-a (http://www.flasher.ru/forum/showthread.php?t=171927)

TanaTiX 27.11.2011 22:14

Настройка IDE-шного ComboBox-a
 
Пришлось использовать IDE-шный ComboBox (что-то нехорошее предчувствовалось заранее, но к сожалению не повелся :( ). Теперь стоит задача его немного рескинить. Уже со всем разобрался, кроме одного момента (в официальной доке уже обыскался): необходимо удалить кнопки для скролла в выпадающем списке. Буду благодарен за любую помощь.

silin 27.11.2011 23:02

все что удалось с наскока
Код AS3:

// убрать напрочь
//cb.dropdown.verticalScrollPolicy = ScrollPolicy.OFF;
 
// убрать изображения стрелок
cb.setStyle("upArrowUpSkin", Shape);
cb.setStyle("downArrowUpSkin", Shape);

что бы убрать сами кнопки скрола, видимо надо мутить свой CellRenderer

TanaTiX 27.11.2011 23:49

silin, спасибо, при этом кнопок не видно, но и размер собственно активной области слайдера не изменяется (остается стандартный зазор в 14 пикселей на месте бывших кнопок). И если кнопки скрыть можно и в самом IDE, то убрать этот зазор не получается. Как объяснить компоненту, что, если он и использует эти кнопки, то их размер не более 1 пикселя?

Dukobpa3 28.11.2011 00:19

Цитата:

что бы убрать сами кнопки скрола, видимо надо мутить свой CellRenderer
Так и есть.

Добавлено через 52 секунды
CellRenderer если разобраться очень крутая штука, позволяет практически всё. Но довольно муторная хрень для понимания.

TanaTiX 28.11.2011 01:17

Цитата:

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

Dukobpa3 28.11.2011 01:20

Поидее ползунок появляется автоматически если значения не влазят в отведенное для них пространство.
Можно попытаться установить высоту выпадающего списка ровно по высоте всех пунктов или чуть больше тогда ползунок не будет отображаться. Могу ошибаться.

Конкретно с этим элементом не работал, потому мои слова могут граничить с бредом в данном конкретном случае.

TanaTiX 28.11.2011 01:36

Dukobpa3, бред не бред (мне, например, таковым этот компонент кажется), просто задача состоит немного в другом.
По умолчанию у этого компонента в выпадающем списке есть скроллбар, состоящий из пары кнопок (вверх и вниз для вертикального скролла), подложки и собственно ползунка. Так вот проблема в том, что когда убираешь кнопки (реально они там остаются как объекты, но с ними нет никакой возможности для общения, т.к. они являются пустыми контейнерами), то на их месте образуется свободное пространство. Это пространство необходимо занять тем ползунком. Точнее не просто занять, а дать ему возможность попасть в соответствующие координаты. Т.е. если по умолчанию срабатывает что-то типа startDrag(false, new Rectangle(100, 20, 0, 100)); то должно startDrag(false, new Rectangle(100, 0, 0, 140)); Вот как этого добиться - ума не приложу.

silin 28.11.2011 09:43

глубоко не копал, но имхо дешевле будет собрать свой ComboBox, чем уговаривать этот
не строится он: добраться до скролбара как бы можно (cb.dropdown.verticalScrollBar), но заменить на свой нельзя (read only), влезть в его работу тоже (нет стилей, аналогичных cellRenderer для List), да и у самого SrollBar нет очевидного способа избавится от кнопок.., при этом эти 14 пикселей зазора судя по всему захардкодены, т.е. чтоб избавится нужен серьезный бубен
жуть, короче..


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

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