PDA

Просмотр полной версии : Как скрыть полосу прокрутки в компоненте Tree?


vikingcompany
14.06.2008, 12:30
Компонент Tree изначально имеет вертикальную полосу прокрутки (scroll-bar).
В случае, когда дерево имеет всего 2-3 веточки, этот scroll-bar вроде как и не нужен.
Подскажите пожалуйста, как его убрать? Заранее спасибо :-)

etc
14.06.2008, 12:40
А вы документацию по классу смотрели?

vikingcompany
14.06.2008, 13:10
Давай на ТЫ.
Смотрел конечно. HELP - мой лучший друг, а F1 - любимая кнопка :-)
Там безусловно куча описаний кастомизации, но конкретики - никакой.

Вот в каком направлении я двигался:
после помещения на сцену самого Tree, согласно описанию в help
через File -> Import -> Open external library ...
открывал файл С:\Programm Files\Adobe\Flash CS3\en\components\haloTheme.fla
из которого импортировал в библиотеку мувика symbol VScrollBar.
Редактируя его можно добаться кое-каких результатов, но уж больно это сложно.
Нет ли способа наподобие visible := false?

etc
14.06.2008, 13:14
Есть. И не надо ломать компонент. Вы невнимательно читаете документацию.

vikingcompany
14.06.2008, 13:22
Странно. Опять всё перерыл - не нахожу :-(

Kuruki
14.06.2008, 14:04
Согласен с __etc. Я вот его (свойство) не искал, а всеравно наткнулся, просто пробегаясь по всем.
vScrollPolicy. Унаследован от List'a

vikingcompany
14.06.2008, 14:11
Спасибо, конечно, за направление,
но не могли бы вы в таком случае сам код привести?

Kuruki
14.06.2008, 14:21
listInstance.vScrollPolicy

a string that determines whether the list supports vertical scrolling. The value of this property can be "on", "off" or "auto". The value "auto" causes a scroll bar to appear when needed.
Example

The following example disables the vertical scroll bar for a list:
var my_list:mx.controls.List;

my_list.setSize(200, 60);
my_list.rowCount = 4;
my_list.vScrollPolicy = "off";

my_list.addItem({data:"flash", label:"Flash"});
my_list.addItem({data:"flex", label:"Flex"});
my_list.addItem({data:"coldfusion", label:"ColdFusion"});
my_list.addItem({data:"dreamweaver", label:"Dreamweaver"});
my_list.addItem({data:"fireworks", label:"Fireworks"});
my_list.addItem({data:"contribute", label:"Contribute"});
my_list.addItem({data:"breeze", label:"Breeze"});

var listListener:Object = new Object();
listListener.scroll = function(evt_obj:Object) {
trace("my_list.vPosition = " + my_list.vPosition);
}
my_list.addEventListener("scroll", listListener);
То же самое можно проделать и с Tree. Но я подозреваю, что вы хотели убрать не только скроллбар, но и такой прямоугольник под ним(не знаю как назвать). Как это сделать я не знаю, может скины свои наложить - я не пробовал.

vikingcompany
14.06.2008, 15:35
Да, я действительно хочу убрать всё: scroll-bar, границы, фон - чтобы Tree прямо-таки висел в воздухе.
Но если убрать границу и сделать прозрачным фон - проще простого, и, более того, описано в help,
то со scroll-bar разделаться оказалось не так уж просто.
Особенно расстраивает бедность настоек в параметрах самого компонента :-(
Где же visible := false?

etc
14.06.2008, 17:28
Вам же написали, vScrollPolicy!

vikingcompany
16.06.2008, 14:59
Большое спасибо!
С myTree.vScrollPolicy = "off" всё заработало!
Можно закрывать тему.