2

画像コンポーネントやボタンバーなどの子コンポーネントを持ついくつかのスキン可能なコンテナがあります。スキンを追加すると、スキン可能なコンテナは見栄えがよくなりますが、そのコンテナのすべての子コンポーネントが消えてしまいます。

Example:
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <!-- host component -->
    <fx:Metadata>
          [HostComponent("path.to.skin.MySkinnableContainer")]
    </fx:Metadata>

    <s:states>
         <s:State name="disabled" />
         <s:State name="normal" />
    </s:states>

    <mx:Image source="@Embed('path.to.skin.AllSkinArt.swf#SkinArt')" includeIn="normal"/>

    <!-- SkinParts
    name=contentGroup, type=spark.components.Group, required=false
    name=contentGroup, type=spark.components.Group, required=false
    -->
 </s:Skin>

スキンされるコンポーネント。スキンされると消える画像コンポーネントがあります。

<s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                      xmlns:s="library://ns.adobe.com/flex/spark" 
                      xmlns:mx="library://ns.adobe.com/flex/mx" 
                      width="116" height="74" 
                      addedToStage="onAddedToStage(event)">

<fx:Script>
    <![CDATA[

        [Bindable]
        private var _screenShot:Bitmap;

        public function updateScreenShot(screenShot:Bitmap):void
        {
            _screenShot = screenShot;

        }

        protected function onAddedToStage(event:Event):void
        {
            //do not want the mouse to interact with this object.
            this.mouseEnabled = false;
        }
    ]]>
</fx:Script>

 <s:Image
    width="115"
    height="82"
    x="-8"
    y="-109"
    source="{_screenShot}"/>
 </s:SkinnableContainer>

CSS ドキュメント内に、スキンを設定する次のコード行があります。

wd|MySkinnableContainer
{
    skinClass: ClassReference("path.to.MySkinnableContainerSkin");
}

上記の例では、Skin は正常に機能しますが、SkinnableContainer 内に含まれる画像は表示されなくなります。

4

2 に答える 2

0

あなたの肌は皮の部分が欠けているように見えますcontentGroup。面白いことに、 のようなコンポーネントの場合SkinnableContainer、コンテンツ グループが必要になると思っていたでしょう。残念ながら、そうではありません。

これをあなたの肌に追加してください:

<s:Group id="contentGroup" />

「contentGroup」スキン パーツが存在するので、「SkinnableContainer」は子オブジェクトをそれに追加できるはずです。

于 2012-04-12T16:04:11.937 に答える