flex(FB 4.5)按钮上的多行标签?

时间:2011-05-20 20:46:36

标签: flex flash-builder

我正在尝试在Flash Builder 4.5中创建一个多线程的按钮(特定的换行符,两者都是左对齐的),第二行是斜体。我可以通过制作一个按钮并在其上面扔一个标签来实现这一点,但它会破坏该标签所在的按钮功能。

是否有一个简单的功能来执行此操作,还是开始进入自定义皮肤? (我看过它,但我对FB很新,看起来像是一个陡峭的学习曲线)

4 个答案:

答案 0 :(得分:2)

是的,你肯定想要剥皮。这很容易,因为它会为您生成所有代码。您只需找到按钮的标签并根据您的意愿进行修改。

很抱歉,但这是正确完成此操作的唯一方法。如果你想要做的只是一起破解它,我认为你不应该触摸代码......

答案 1 :(得分:1)

轻微澄清/补充: 虽然在按钮标签中有多行就像将皮肤中'labelDisplay'的'maxDisplayedLines'属性设置为大于'1'的任何内容一样简单,但s:Label不支持多种样式;即你不能有一条常规线,第二条线是斜体。

FTQuest

答案 2 :(得分:0)

创建按钮的多行标签:

  1. 修剪按钮(最简单的方法:从“设计”视图中创建外观)
  2. 在皮肤中,使用id =“ labelDisplay ”滚动到您看到标签的位置
  3. 在Skin&amp ;;中为该标签设置固定宽度。你做完了!
  4. 填充Button的label属性后,它将为您自动多行

答案 3 :(得分:-1)

我发现没有什么可以做我想做的事情(我确实找到了Flexlib和canvasButton,但它似乎对我不起作用)

我最终做的是制作我自己的“模拟”按钮。一个带有2行标签的容器(一个正常,一个斜体,就像我想的那样),另一个容器放在它上面。 mouseOver和mouseOut以及click都绑定到顶部容器,使其看起来像一个大按钮。 (我还使用了一些alpha透明度来模拟突出显示。

对于好奇的人(或其他类似问题的初学者) - 这就是我所做的

    <s:BorderContainer id="bottomContainer" x="129" y="99" width="200" height="44" backgroundColor="#EEEEEE"
                   borderVisible="false" cornerRadius="6">
    <s:Label id="encLabel1" x="48" y="8" color="#000000" fontFamily="Arial"
             text="Create a new encounter"/>
    <s:Label id="encLabel2" x="48" y="24" color="#000000" fontStyle="italic"
             text="Single encounter"/>
    <s:Image x="10" y="10" source="assets/001_01.png"/>
</s:BorderContainer>        
<s:BorderContainer id="coverContainer" x="129" y="99" width="200" height="44" backgroundColor="#000000"
                       borderVisible="false" cornerRadius="6" alpha=".1" mouseOver="alphaOver(event)" mouseOut="alphaOver(event)" click="trace('working')">
</s:BorderContainer>