Зачем использовать s:Line вместо mx:HRule?
При использовании mx:HRule или mx:VRule Flash Builder предлагает вместо этого использовать s:Line. Почему я хотел бы написать что-то вроде этого:
<s:Line xFrom="0" xTo="245" yFrom="0" yTo="1"/>
вместо
<mx:Hrule width="100%" />
Как я могу получить относительные размеры? (процентов)
3 ответа
Поскольку компоненты mx постепенно сокращаются для улучшения компонентов Spark с возможностью скиннинга. И почему вы не можете использовать width=100% с Line? Кстати, этот отрезок не будет ничего показывать, потому что у вас нет набора штрихов. Вот то, что я думаю, вы хотите:
<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>
Но это действительно зависит от вас. Любой из примитивов искровой формы может быть записан с использованием относительного позиционирования и размеров.
редактировать
Джекс победил меня в этом:)
У меня была какая-то ошибка с использованием элемента S:Line, она не заполняла все 100% в моей коже. Я заменил его элементом S:SkinableContainer, например так:
<s:SkinnableContainer backgroundColor="Lime" width="100%" height="10"/>
Я обнаружил, что это хорошее решение для меня, и оно также экономит место в коде, как вы сказали, что вы хотели бы.