2011-01-11 1 views
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> 

私が起きてからこれを停止するにはどうすればよいですか?

答えて

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

関連する問題