7

使用mx:HRulemx:VRule时,Flash Builder 建议改用s:Line。我为什么要写这样的东西:

<s:Line xFrom="0" xTo="245" yFrom="0" yTo="1"/>

代替

<mx:Hrule width="100%" />

我如何获得相对尺寸?(百分)

4

3 回答 3

15

因为 mx 组件正在被淘汰,以换取更好的、可换肤的 Spark 组件。为什么不能在 Line 中使用 width=100%?顺便说一句,该线段不会显示任何内容,因为您没有设置笔画。这就是我认为你想要的:

<s:Line width="100%">
   <s:stroke>
      <s:SolidColorStroke color="#000000" weight="1" caps="square"/>
   </s:stroke>
</s:Line>

如果你真的只想让它只有一个标签,你总是可以创建一个新组件,调用它HRule并为其设置默认样式。

于 2011-05-24T13:56:16.773 回答
5

好吧,你不会想写那样的东西......

我可能会写得更像这样..

<s:Line width="100%">
            <s:stroke>
                <s:SolidColorStroke caps="none" color="#AF0000" joints="miter" miterLimit="4"
                                    weight="2"/>
            </s:stroke>
            <s:filters>
                <s:BevelFilter angle="45.0" blurX="1" blurY="1" distance="1"
                               highlightAlpha="1.0" highlightColor="#FFFFFF" knockout="false"
                               quality="2" shadowAlpha="1.0" shadowColor="#000000" strength="1"
                               type="inner"/>
            </s:filters>
</s:Line>

但这真的取决于你。任何火花形状基元都可以使用相对定位和大小来编写。

编辑

Jax 打败了我 :)

于 2011-05-24T13:56:20.187 回答
2

我在使用 S:Line 元素时遇到了一个错误,它没有填满我皮肤内部的 100%。我用这样的 S:SkinableContainer 元素替换了它:

<s:SkinnableContainer backgroundColor="Lime" width="100%" height="10"/>

我发现这对我来说是一个很好的解决方案,并且它还可以节省代码中的空间,就像您提到的那样。

于 2012-02-08T14:21:48.490 回答