Пользовательская граница оболочки SkinnableContainer

#apache-flex #actionscript-3 #flex4

#apache-flex #actionscript-3 #flex4

Вопрос:

У меня есть SkinnableContainer, к которому я хотел бы добавить границу. Я уже создал класс оболочки, который успешно создает границу в 1 пиксель вокруг всех четырех сторон контейнера, однако я хотел бы, чтобы граница была только для верхней и нижней части контейнера, а не для сторон (левой, правой). Как я могу добиться такой вещи? Я прикрепил свой текущий класс оболочки. Пожалуйста, помогите! Заранее спасибо.

 <?xml version="1.0" encoding="utf-8"?>
<!-- containerssparkmySkinsMyBorderSkin.mxml -->
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:mx="library://ns.adobe.com/flex/mx"
    xmlns:s="library://ns.adobe.com/flex/spark" >

<fx:Metadata>
    [HostComponent("spark.components.SkinnableContainer")]
</fx:Metadata>

<!-- Define the skin states. -->
<s:states>
    <s:State name="normal" />
    <s:State name="disabled" />
</s:states>

<!-- Define a Rect to fill the area of the skin. -->
<s:Rect x="0" y="0"
        height="100%" width="100%">
    <s:stroke>
        <s:LinearGradientStroke weight="1"/>
    </s:stroke>         
</s:Rect>

<!-- Define the content area of the container. -->
<s:Group id="contentGroup"
         left="5" right="5" top="2" bottom="2">
    <s:layout>
        <s:VerticalLayout/>
    </s:layout>
</s:Group>        
</s:Skin>
  

Ответ №1:

Используйте что-то вроде:

 <s:Line left="0" top="0" right="0">
    <s:stroke>
        <s:LinearGradientStroke weight="1"/>
    </s:stroke>
</s:Line>

<s:Line left="0" bottom="0" right="0">
    <s:stroke>
        <s:LinearGradientStroke weight="1"/>
    </s:stroke>
</s:Line>
  

вместо вашего Rect объявления.