有没有简单的方法来设置HDividedBox(或VDividedBox)的BoxDivider对象的backgroundColor? BoxDivider是“分隔符”,上面有拖动句柄。
默认情况下,BoxDivider是透明的,上面有小手柄图像。
dividerSkin样式默认为mx.skin.BoxDividerSkin,它是对Assets.swf文件中符号的引用。
有什么想法吗?我必须做一个替代皮肤吗?这是我唯一的选择吗?谷歌搜索这导致我许多奇怪和黑客的解决方案,坦率地似乎没有工作。
感谢。
答案 0 :(得分:3)
好的,这是你如何做到的:
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&amp; Y ...
答案 1 :(得分:1)
此外,您可以扩展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();
}
答案 2 :(得分:0)
我希望能够为每个分割盒创建一个简单的编程皮肤。所以我可以这样做:
&lt; mx:HDividedBox dividerSkin =“path.MyDividerSkin”
但是我很难搞清楚MyDividerSkin类应该是什么样子。你认为这很容易。 :)