【问题标题】:Flex HDividedBox Divider backgroundColorFlex HDDividedBox Divider 背景颜色
【发布时间】:2010-03-11 15:53:57
【问题描述】:

有没有一种简单的方法来设置 HDividedBox(或 VDividedBox)的 BoxDivider 对象的 backgroundColor? BoxDivider 是具有拖动手柄的“分隔器”。

默认情况下,BoxDivider 是透明的,上面带有小手柄图像。

有一个默认为 mx.skin.BoxDividerSkin 的 dividerSkin 样式,它是对 Assets.swf 文件中的符号的引用。

有什么想法吗?我必须制作备用皮肤吗?那是我唯一的选择吗?谷歌搜索这让我找到了许多奇怪和hacky的解决方案,坦率地说似乎没有用。

谢谢。

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

    好的,你可以这样做:

    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();
    
    }
    

    然后将其添加到您的 hdivided 框中

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

    默认情况下,皮肤会添加到分隔线的中间,因此您需要偏移 x 和 y...

    【讨论】:

    • 太棒了!,文档使它看起来像是一个简单的样式更改,但是当您设置样式时它不起作用。很好地解决了这个问题。
    【解决方案2】:

    此外,您可以扩展 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();
    
        }
    

    【讨论】:

      【解决方案3】:

      我希望能够为每个分隔框创建一个简单的程序化皮肤。所以我可以这样做:

      但我很难弄清楚 MyDividerSkin 类应该是什么样子。你认为这很容易。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-16
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        相关资源
        最近更新 更多