0

これは簡単なはずですが、フレックス パス プリミティブを使用して親コンテナーを基準にしてパスをスケーリングする方法がわかりません。20x20 ピクセルのボタンがあり、スキンに次のグラフィック要素 (この例では単純な三角形) があるとします。

    <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 を使用して、三角形がボタンのフルサイズになるようにします。パスが常にボタンのサイズの 100% であることを望みます。たとえば、ボタンが 40x20 の場合、パスはそれに応じてスケーリングする必要があります。

パス データ プロパティはパーセント値を受け入れません。パスデータの「20」をコンテナの幅または高さとして指定するにはどうすればよいですか?

4

1 に答える 1

1

これを見てください:

ここに画像の説明を入力

ここに私の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"/>

2 つのスキンの唯一の違いは、「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>
...
于 2013-09-12T07:09:04.130 に答える