2011-01-11 73 views
0

我從默認按鈕外觀開始爲火花按鈕創建一個新外觀。然後刪除除文本圖層外的所有圖層。如果我正常使用帶有此外觀的按鈕,則一切正常。如果我將按鈕放在ItemRenderer中,當我將其中一個按鈕懸停時,它會變成灰色陰影。這是一個代碼示例。從柔性火花按鈕中移除懸停灰色陰影

皮膚:

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

我怎樣才能阻止這種情況的發生:

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

,我使用它的代碼?

回答

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> 

是否還有更好的,更優雅的方式?

+0

這也完成了這個工作:autoDrawBackground =「false」 – calin014 2012-02-28 10:39:44