PDA

Просмотр полной версии : Кастомный ScrollBar


insected
05.12.2009, 14:17
Мне нужно. чтобы при нажатии на thumb и кнопки скролла они смещались по х и у немного. Как это сделать? В классе ScrollBar нет возможности засунуть свои классы для thumb и arrow.

bicubic_bublic
05.12.2009, 14:30
как это нет?
scrollBar.setStyle('thumbDownSkin', ...);
scrollBar.setStyle('downArrowDownSkin', ...);
scrollBar.setStyle('upArrowDownSkin', ...);

insected
05.12.2009, 14:38
Ну это скины. Может я что то не понимаю, но в них это сделать не особо получается.
Меняю скин стрелки на свой

up-arrow-skin : ClassReference("skins.scroll.CustomScrollArrowSkin");


В классе скина перегружаю updateDisplayList и если name == downArrowUpSkin например, то делаю parent.x ++. Ок. Это происходит 1 раз и больше не повторяется. То есть первый раз на кнопку со стрелкой нажимаешь, она смещается, при последующих нажатиях нет.

bicubic_bublic
05.12.2009, 14:50
public class MyScrollArrowDown_downSkin extends MovieClip {
public function MyScrollArrowDown_downSkin() {
var button:MovieClip = new ScrollArrowDown_downSkin();
addChild(button);
button.x = button.y = 1;
}
}

scrollBar.setStyle('downArrowDownSkin', MyScrollArrowDown_downSkin);

Добавлено через 38 минут
так... я кажется понял что вы имели ввиду.. может так?

public class MyScrollBar extends ScrollBar {
override protected function scrollPressHandler(event:ComponentEvent):void {
super.scrollPressHandler(event);
if (event.currentTarget == upArrow) {
upArrow.x++;
} else if (event.currentTarget == downArrow) {
downArrow.x++;
}
}
}

insected
05.12.2009, 15:32
Да, спасибо. Первый вариант помог.
Второй - не вижу ни метода такого в ScrollBar ни upArrow, downArrow

bicubic_bublic
05.12.2009, 15:53
Второй - не вижу ни метода такого в ScrollBar ни upArrow, downArrow

вы в документации смотрите или в исходниках ScrollBar?

insected
06.12.2009, 15:38
в исходниках mx.controls.scrollClasses.ScrollBar

...Да лан, уже вопрос решен. спасибо за помощь

bicubic_bublic
07.12.2009, 10:43
в исходниках mx.controls.scrollClasses.ScrollBar

...Да лан, уже вопрос решен. спасибо за помощь

не вводите людей в заблуждение..
это раздел "Программирование на ActionScript 3.0, под API 9 - 10 версии Flash Player'а (AVM2)"

Flex - в соседнем..

insected
07.12.2009, 11:48
ок. сорри...