Удалите зависший серый оттенок из кнопки искривления - PullRequest
0 голосов
/ 11 января 2011

Я создаю новый скин для кнопки со свечой, начиная с стандартного скина кнопки.Затем я удаляю все слои в скине, кроме текстового слоя.Если я использую кнопку с этим скином нормально, все ок.Если я помещаю кнопку в 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 Ответ

1 голос
/ 11 января 2011

Это было вызвано средством визуализации предметов. Я добавил это, и это работает:

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

Есть ли лучший, более элегантный способ?

...