2012-06-06 3 views
0

리스트 아이템을 클릭했을 때 Rect의 알파를 변경하고 싶지만 해결할 수 없습니다. 그리고 아이템 렌더러 내부의 Rectangle에서이를 수행하는 것과 정확히 어떻게 다른지 모르겠다.플렉스 아이템 렌더러 - 클릭했을 때 알파 변경

CODE :

<s:List id="list" labelField="name" dataProvider="{items}" top="20" bottom="20" left="20" right="20" 
       contentBackgroundAlpha="0" 
       change="list_changeHandler(event)"> 
      <s:itemRenderer> 
       <fx:Component> 
        <s:ItemRenderer width="100%" height="200" autoDrawBackground="false" contentBackgroundAlpha="0"> 

         <s:Group width="100%" height="100%"> 
          <s:Rect id="rect" left="0" right="0" top="0" bottom="0" alpha="0.3"> 
           <s:fill> 
            <s:SolidColor color="#FFFFFF" 
                /> 
           </s:fill> 
          </s:Rect> 
          <s:Image source="{data.icon}" top="30" horizontalCenter="0"/> 
          <s:Label text="{data.name}" top="100" horizontalCenter="0" color="#101010" fontWeight="bold" fontSize="16"/> 
          <s:Label text="{data.line1}" top="130" horizontalCenter="0" color="#343434" fontSize="14"/> 
          <s:Label text="{data.line2}" top="150" horizontalCenter="0" color="#343434" fontSize="14"/> 
         </s:Group> 
        </s:ItemRenderer> 
       </fx:Component> 
      </s:itemRenderer> 
      <s:layout> 
       <s:TileLayout requestedColumnCount="3" requestedColumnCount.landscape="4" columnAlign="justifyUsingWidth"/> 
      </s:layout> 
     </s:List> 

답변

2

은이의의 itemRenderer의 상태를 사용할 수 있습니다. 이러한 상태를 ItemRenderer에 추가하십시오.

<s:states> 
    <s:State name="normal" /> 
    <s:State name="hovered" /> 
    <s:State name="selected" /> 
</s:states> 

<s:Rect left="0" right="0" top="0" bottom="0"> 
    <s:fill> 
     <s:SolidColor color.normal="0x0000ff" 
         color.hovered="0x00ff00" 
         color.selected="0xff0000" /> 
    </s:fill> 
</s:Rect> 

이 코드를 사용하면 렌더러가 기본적으로 파란색으로 표시됩니다. 마우스를 가져 가면 녹색으로 바뀝니다. 선택하면 빨간색으로 표시됩니다. 물론 alpha 값으로 동일한 작업을 수행 할 수 있습니다.

+0

+1 from me; ItemRenderer 클래스에 미리 정의 된 상태가 있는지 알지 못했습니다. – JeffryHouser

+0

@ www.Flextras.com'ItemRenderer # getCurrentRendererState()'코드를 보자. – RIAstar

+0

고마워! 국가 사용을 이해하는 데 도움이되는 매우 유용한 예입니다. (나는 자주 사용하지 않지만 지금부터 할 것입니다.) 감사합니다. –

관련 문제