当使用mx:HRule或mx:VRule:Line。我为什么要写这样的东西:
<s:Line xFrom="0" xTo="245" yFrom="0" yTo="1"/>
而不是
<mx:Hrule width="100%" />
如何获取相对尺寸?(百分比)
因为mx组件正在逐步淘汰,以获得更好的、可剥皮的Spark组件。为什么不能在Line中使用width=100%?顺便说一句,线段不会显示任何内容,因为你没有笔划集。我想你想要的是:
<s:Line width="100%">
<s:stroke>
<s:SolidColorStroke color="#000000" weight="1" caps="square"/>
</s:stroke>
</s:Line>
如果你真的只想让它成为一个标签,你可以创建一个新的组件,称之为HRule
,并有一个默认的样式
你不会想写这样的东西。。。
我可能会写得更像这样。。
<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打败了我:)
我在使用S:Line元素时遇到了一个错误,它没有100%填充我的皮肤。我用S:SkinableContainer元素替换了它,如下所示:
<s:SkinnableContainer backgroundColor="Lime" width="100%" height="10"/>
我发现这对我来说是一个很好的解决方案,而且它还节省了代码中的空间,就像你提到的那样。