Flex HDividedBox Divider backgroundColor - PullRequest
0 голосов
/ 11 марта 2010

Есть ли простой способ установить backgroundColor объекта BoxDivider (или VDividedBox) HDividedBox? BoxDivider - это «разделитель», на котором есть ручка перетаскивания.

По умолчанию BoxDivider прозрачен с изображением маленькой ручки.

Существует стиль dividerSkin, который по умолчанию равен mx.skin.BoxDividerSkin, который является ссылкой на символ в файле Assets.swf.

Есть идеи? Должен ли я сделать альтернативный скин? Это мой единственный вариант? Поиск в Google привел меня ко многим решениям, которые были странными, хакерскими и, честно говоря, не работали.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 11 марта 2010

ОК, вот как вы это делаете:

  1. создать класс, расширяющий ProgrammaticSkin
  2. переопределить метод updatedisplaylist следующим образом:
override protected function updateDisplayList(w:Number, h:Number):void
{
    var divwidth:Number = getStyle("dividerThickness");

    if (divwidth == 0)
    {
        divwidth = 10;
    }

    graphics.clear();
    graphics.beginFill(0xFF0000, 1.0);
    graphics.drawRect(-(parent.height / 2), -(divwidth / 2), parent.height, divwidth);
    graphics.endFill();

}

затем добавьте это в свой разделенный ящик

<mx:HDividedBox dividerSkin="path.MyDividerSkin"/>

по умолчанию обложка добавляется к середине разделителя, поэтому вам нужно сместить x & y ...

1 голос
/ 27 июля 2011

Кроме того, вы можете расширить DividedBox и переопределить updateDisplayList примерно так:

    override protected function updateDisplayList(w:Number, h:Number):void 
    { 

        super.updateDisplayList(w,h);

        graphics.clear();
        var n:int = numDividers;
        graphics.beginFill(0xFF0000, 1.0);
        for (var i:int = 0; i < n; i++) 
        {
            var box:BoxDivider = getDividerAt(i); 
            graphics.drawRect(box.x, box.y, box.width, box.height);
        }
        graphics.endFill();

    }
0 голосов
/ 11 марта 2010

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

но мне трудно понять, как должен выглядеть класс MyDividerSkin. Вы думаете, это будет легко. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...