flex s:相对大小的路径

时间:2013-09-11 13:24:06

标签: flex svg flex4

这应该很简单,但我无法弄清楚如何使用Flex Path原语相对于其父容器缩放路径。假设我有一个20x20像素的按钮,并且在Skin中有以下图形元素(例如一个简单的三角形):

    <s:Path
        data="M 0 20 L 0 0 L 20 0 L 0 20"
        width="100%" height="100%">
        <s:stroke>
            <s:SolidColorStroke color="0x00000" weight="1"/>
        </s:stroke>
    </s:Path>

路径使用0和20,以便triange是按钮的完整大小。 我希望Path始终是按钮大小的100%:例如,如果按钮是40x20,则应相应地缩放路径。

路径数据属性不接受百分比值。如何在路径数据中指定“20”是容器宽度还是高度?

1 个答案:

答案 0 :(得分:1)

看看这个:

enter image description here

这是我的MXML:

<s:Button label="Hello" width="70" height="40" skinClass="assets.skin.MySkin"/>
<s:Button label="Hello" width="170" height="40" skinClass="assets.skin.MySkin"/>
<s:Button label="Hello2" width="170" height="270" skinClass="assets.skin.MySkin2"/>

两个皮肤之间的唯一区别是“s:Graphic”标签的“宽度”和“高度”:

// MySkin.mxml

...
<s:Graphic>
    <s:Path data="M 0 20 L 0 0 L 20 0 L 0 20">
        <s:stroke>
            <s:SolidColorStroke color="0x00000" weight="1"/>
        </s:stroke>
    </s:Path>
</s:Graphic>
...

// MySkin2.mxml

...
<s:Graphic width="100%" height="100%">
    <s:Path data="M 0 20 L 0 0 L 20 0 L 0 20">
        <s:stroke>
            <s:SolidColorStroke color="0x00000" weight="1"/>
        </s:stroke>
    </s:Path>
</s:Graphic>
...