Вертикальный разделитель Flex 4.5 MenuBar (с использованием updateDisplayList) - PullRequest
0 голосов
/ 06 января 2012

Итак, у моего клиента есть дизайн для их гибкой навигации по скинам, который выглядит следующим образом: enter image description here

Я создал специальную панель меню, чтобы это произошло. Но, похоже, этого не происходит. Он никогда не отображает какие-либо изменения, которые я сделал в графике. Что я делаю не так?

Вот методы, которые я пробовал:

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
    super.updateDisplayList(unscaledWidth, unscaledHeight);

    this.graphics.clear();
    for (var i:int = 1; i < this.menuBarItems.length; i++) {
    var item:MenuBarItem = MenuBarItem(this.menuBarItems[i]);
        this.graphics.beginFill(textColor);
        this.graphics.drawRect(item.x + borderPadding, item.y, separatorSize, item.height);
        this.graphics.endFill();
    }
}

или

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
    super.updateDisplayList(unscaledWidth, unscaledHeight);

    this.graphics.clear();
    for (var i:int = 1; i < this.menuBarItems.length; i++) {
    var item:MenuBarItem = MenuBarItem(this.menuBarItems[i]);
        item.graphics.beginFill(textColor);
        item.graphics.drawRect(borderPadding, 0, separatorSize, item.height);
        item.graphics.endFill();
    }
}

CSS у меня есть:

mx|MenuBar.navigation { 
backgroundSkin: Embed(source="assets/A2AD00-1x1.png");
itemOverSkin: Embed(source="assets/8B9300-1x1.png");
color: #ffffff;
borderPadding: 0;
separatorSize: 1;
}

1 Ответ

0 голосов
/ 09 января 2012

Я неохотно переключился на использование только 9-фрагментного изображения.Для всех, кто ищет, вот что я сделал:

Я сделал это изображение: 20 x 4

(с правой стороны однопиксельная белая линия)

И использовалэто CSS:

mx|MenuBar.navigation { 
    backgroundSkin: Embed(source="assets/A2AD00-1x1.png");
    itemUpSkin: Embed(source="assets/nav_up.png",
        scaleGridTop="2",
        scaleGridLeft="2",
        scaleGridRight="18",
        scaleGridBottom="3");
    color: #ffffff;
}

Работало нормально.Не забудьте добавить ресурсы в build.xml для вашей темы:

<include-file name="assets/nav_up.png" path="${basedir}/src/assets/nav_up.png" />
<include-file name="assets/A2AD00-1x1.png" path="${basedir}/src/assets/A2AD00-1x1.png" />

Затем я просто выбросил класс, который у меня был в моем вопросе, так как он был бесполезен.

...