Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Скиннинг scrollBar'а, не получается изменить размер "стрелок" (http://www.flasher.ru/forum/showthread.php?t=170692)

Acrossfy 30.10.2011 19:17

Скиннинг scrollBar'а, не получается изменить размер "стрелок"
 
Здравствуйте, у меня в сцене scrollPane компонент. Пытаюсь стилизовать его scrollBar.
Делаю это так:
Код AS3:

public var pane:ScrollPane;
pane.setStyle('upArrowUpSkin', ArrowUp_upSkin);
 
// ----------
 
public class ArrowUp_upSkin extends MovieClip
{
        public function ArrowUp_upSkin()
        {
                var btn:MovieClip = new ScrollArrowUp_upSkin();
                addChild(btn);
 
                //пробую так
                btn.width = 33;
                btn.height = 33;
                //и так
                btn.parent.width = 33;
                btn.parent.height = 33;
                //и даже так
                btn.getChildAt(0).width = 33;
                btn.getChildAt(0).height = 33;
 
                //Трейс всех этих параметров выше подтвеждает их изменение, но кнопки все равно остаются маленькими – дефолтный размер (16х16)
 
                //Код ниже например работает нормально
                btn.parent.x = -430;
                btn.parent.y = 300;
        }
}

Добавлено через 4 часа 46 минут
Собственно таким способом не получается тоже:
Код AS3:

var newSkinClip:MovieClip = new MovieClip();
newSkinClip.graphics.beginFill(uint(0xff0000), 1);
newSkinClip.graphics.drawRect(0,0,50,50);
newSkinClip.graphics.endFill();
 
pane.setStyle('upArrowUpSkin', newSkinClip);

Рисуется красный квадрат, размером 16 на 16. Как удалось выяснить из трейсов, создаваемый мною клип скина ложится внутрь BaseButton, которая лежит непосредственно в ScrollBar'e. Но как добраться до нее(BaseButton) совсем не понятно. Многие конструкции самопальные пробовал, не получалось.

Добавлено через 4 часа 58 минут
Вообщем докопался я до нее следующим способом:
Код AS3:

var newSkinClip:MovieClip = new MovieClip();
newSkinClip.graphics.beginFill(uint(0xff0000), 1);
newSkinClip.graphics.drawRect(0,0,50,50);
newSkinClip.graphics.endFill();
newSkinClip.addEventListener(Event.ADDED, setHeight); //добавил слушатель
 
pane.setStyle('upArrowUpSkin', newSkinClip);
 
// ----------
 
private function setHeight(e:Event) //сделал дело
{
        ((e.target as MovieClip).parent as BaseButton).height = 50;
        ((e.target as MovieClip).parent as BaseButton).width = 50;
}



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

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