从flex spark按钮中移除悬浮灰色阴影

时间:2011-01-11 10:05:44

标签: button flex4 itemrenderer skin

我从默认按钮皮肤开始为spark按钮创建一个新皮肤。然后我删除皮肤中的所有图层,文本图层除外。如果我正常使用这个皮肤的按钮,一切都很好。如果我将按钮放在ItemRenderer中,当我将其中一个按钮悬停时,它会变成灰色阴影。这是一个代码示例。

皮肤:

<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>

如何阻止这种情况发生?

1 个答案:

答案 0 :(得分: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>

有更好,更优雅的方式吗?