2011-01-11 70 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