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

관련 문제