1

カスタムコンポーネントがありますGlassSkin.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"
         xmlns:local="*" minHeight="20" minWidth="20">
    <fx:Metadata>
        [HostComponent("spark.components.SkinnableContainer")]
    </fx:Metadata>
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    </s:states>
    <s:Rect left="0" right="0" top="0" bottom="0">
        <s:alpha>0.3</s:alpha>
        <s:radiusX>3</s:radiusX>
        <s:fill>
            <s:SolidColor>#000000</s:SolidColor>
        </s:fill>
    </s:Rect>
    <s:Group id="contentGroup" width="100%" height="100%" left="5" right="5" top="5" bottom="5"></s:Group>
</s:Group>

メインの mxmm 内では、次のようなカスタム コンポーネントを使用します。

<local:GlassSkin width="600" height="400" horizontalCenter="0" verticalCenter="0">
Something...
</local:GlassSkin>

それは機能し、contentGroup内部に追加するすべての要素を受け取ります。唯一の問題は、カスタム要素で指定されたカスタム グラフィック要素が追加されないことです。影も無地も何もない。なんで?

4

1 に答える 1

0

わかった。カスタムコンポーネントを使用してそれにデータを渡すと、mxml自体にあるすべてのフォーマットが削除されます。どうしてか分かりません。

これの代わりに、単純なSkinnableContainerを作成し、カスタムコンポーネントをSkinとして使用しました。(グループの名前をSparkSkinに変更)

これにより、カスタムコンポーネントはありませんが、どこでも使用できるスキンがあります。

  • さらに、結果のswfはどういうわけか小さくなりました。
于 2013-02-04T02:47:22.957 に答える