Actionscript 3 在自定义togglebuttonbar中创建多行标签
我有一个自定义的toggleButtonBar类,允许在按钮上放置标签,但是,我希望标签是多行的。我不擅长扩展默认组件。有人能帮我吗Actionscript 3 在自定义togglebuttonbar中创建多行标签,actionscript-3,apache-flex,Actionscript 3,Apache Flex,我有一个自定义的toggleButtonBar类,允许在按钮上放置标签,但是,我希望标签是多行的。我不擅长扩展默认组件。有人能帮我吗 package com.vit2print.plugin.transvit.tools { import mx.controls.Button; import mx.controls.ToggleButtonBar; import mx.core.IFlexDisplayObject; public class IconToggl
package com.vit2print.plugin.transvit.tools
{
import mx.controls.Button;
import mx.controls.ToggleButtonBar;
import mx.core.IFlexDisplayObject;
public class IconToggleButtonBar extends ToggleButtonBar
{
[Inspectable(enumeration="left,right,top,bottom", defaultValue="left")]
public var labelPlacement:String = "left";
override protected function createNavItem(label:String, icon:Class=null):IFlexDisplayObject {
var b:Button = Button(super.createNavItem(label, icon));
b.labelPlacement = labelPlacement;
return b;
}
}
}
任何帮助都将不胜感激。如果您可以使用Spark组件,您可以通过ButtonBar按钮的自定义皮肤来实现这一点。为按钮栏蒙皮时,您必须创建4个蒙皮:
- 一个是纽扣杆本身
- 第一个按钮一个
- 中间的一个按钮
- 最后一个按钮是一个
masDisplayedLines
属性设置为1
。删除它或将其设置为更适合您的用例的值
现在,通过复制默认的Spark ButtonBarSkin,为ButtonBar本身创建一个蒙皮。找到这三个按钮工厂,用您刚刚创建的按钮皮肤替换skinClass
样式
<fx:Declarations>
<fx:Component id="firstButton">
<s:ButtonBarButton skinClass="net.riastar.skins.MyButtonBarFirstButtonSkin" />
</fx:Component>
<fx:Component id="middleButton" >
<s:ButtonBarButton skinClass="net.riastar.skins.MyButtonBarButtonSkin" />
</fx:Component>
<fx:Component id="lastButton" >
<s:ButtonBarButton skinClass="net.riastar.skins.MyButtonBarLastButtonSkin" />
</fx:Component>
</fx:Declarations>
现在把这个皮肤贴在你的纽扣杆上,你就准备好了
<s:ButtonBar dataProvider="{dp}" skinClass="net.riastar.so.MyButtonBarSkin" width="200" />
记住,一般来说,对于Spark组件:如果您想让它们看起来不同,而不想真正改变/定制它们的行为,请使用蒙皮而不是定制组件。您已经标记了您的问题
Flex4
,但您扩展了mx
切换按钮栏。是哪一个?如果你能使用Spark components,这会容易得多。编辑:对不起,我不能使用Spark components。我只花了15分钟的时间给你写一个答案,你是同时将评论从“是”改为“否”,还是我在做梦?对不起,我试着尽快改,但显然还是太晚了(