为什么使用s:Line而不是mx:HRule?

i.a*_*iel 7 apache-flex flex-mx flex-spark

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

<s:Line xFrom="0" xTo="245" yFrom="0" yTo="1"/>
Run Code Online (Sandbox Code Playgroud)

代替

<mx:Hrule width="100%" />
Run Code Online (Sandbox Code Playgroud)

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

J_A*_*A_X 15

因为mx组件正在逐步淘汰,以获得更好的可更换皮肤的Spark组件.为什么你不能使用宽度= 100%的线?顺便说一句,该线段不会显示任何内容,因为您没有设置笔划.这是我认为你想要的:

<s:Line width="100%">
   <s:stroke>
      <s:SolidColorStroke color="#000000" weight="1" caps="square"/>
   </s:stroke>
</s:Line>
Run Code Online (Sandbox Code Playgroud)

如果你真的只想让它只是一个标签,你可以随时创建一个新组件,调用它HRule并具有默认样式.

  • @Zenklys:你只需要做一次.从中创建一个组件,然后使用该组件. (3认同)

drk*_*str 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>
Run Code Online (Sandbox Code Playgroud)

但这完全取决于你.可以使用相对定位和尺寸来编写任何火花形状基元.

编辑

Jax打败了我:)