0

デフォルトのボタンスキンから始めて、スパークボタンの新しいスキンを作成します。次に、テキスト レイヤーを除く、スキン内のすべてのレイヤーを削除します。このスキンで普通にボタンを使えばOKです。ボタンを ItemRenderer に配置すると、ボタンの 1 つにカーソルを合わせると、灰色の色合いになります。これがコードサンプルです。

皮膚:

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:fb="http://ns.adobe.com/flashbuilder/2009" minWidth="21" minHeight="21" alpha.disabled="0.5">

<!-- host component -->
<fx:Metadata>
    <![CDATA[ 
    /** 
     * @copy spark.skins.spark.ApplicationSkin#hostComponent
     */
    [HostComponent("spark.components.Button")]
    ]]>
</fx:Metadata>

<!-- states -->
<s:states>
    <s:State name="up" />
    <s:State name="over" />
    <s:State name="down" />
    <s:State name="disabled" />
</s:states>

<!-- layer 8: text -->
<!--- @copy spark.components.supportClasses.ButtonBase#labelDisplay -->
<s:Label id="labelDisplay"
         textAlign="center"
         verticalAlign="middle"
         maxDisplayedLines="1"
         horizontalCenter="0" verticalCenter="1"
         left="10" right="10" top="2" bottom="2">
</s:Label>

私が使用するコード:

    <s:applicationComplete>
    <![CDATA[
        dg.dataProvider = new ArrayList(['but1', 'but2']);
    ]]>
</s:applicationComplete>

<s:DataGroup id="dg">
    <s:layout>
        <s:HorizontalLayout gap="0" />
    </s:layout>
    <s:itemRenderer>
        <fx:Component>
            <s:ItemRenderer>
                <s:Button skinClass="Test" label="{data}" width="200" height="50"/>
            </s:ItemRenderer>
        </fx:Component>
    </s:itemRenderer>
</s:DataGroup>

どうすればこれを防ぐことができますか?

4

1 に答える 1

1

アイテムレンダラーが原因でした。これを追加しましたが、動作します:

           <s:ItemRenderer>
                <fx:Script>
                    <![CDATA[
                        override protected function get hovered():Boolean {
                            return false;
                        }
                    ]]>
                </fx:Script>
                <s:Button skinClass="Test" label="{data}" width="200" height="50"/>
            </s:ItemRenderer>

より良い、よりエレガントな方法はありますか?

于 2011-01-11T10:22:18.183 に答える