2011-05-24 134 views
7

当使用mx:HRulemx:VRule时,Flash Builder建议使用s:行代码。 我为什么要编写这样的东西:的为什么使用s:Line而不是mx:HRule?

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

代替

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

如何获得相对大小? (百分比)

回答

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并有一个默认的风格吧。

+1

好的,谢谢。但是,对我来说,看起来像是一个简单的“线条”的很多文本。 – 2011-05-24 14:03:52

+0

这是,但同样,这是为了使您的线路可以非常可定制,从长远来看更好。如果你想要一个'标准化'的行,只需创建一个可重用的自定义组件。 – 2011-05-24 14:09:55

+3

@ Zenklys:你只需要做一次。从中创建一个组件,然后使用该组件。 – 2011-05-24 14:11:07

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> 

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

编辑

贾克斯打我吧:)

2

我使用S有样的一个bug:线元素,它没有填满100%,我的皮肤里。 我用S代替它:SkinableContainer元素是这样的:

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

我发现这对我来说是一个很好的解决方案,而且它也是在这样的代码你提到你想节省空间。