2012-01-16 2 views
0

항목 렌더러에서 구성 요소 텍스트 크기를 어떻게 동적으로 변경할 수 있습니까?항목 렌더러에서 구성 요소를 어떻게 동적으로 변경할 수 있습니까?

여기 내 CustomItemRenderer.mxml입니다 :

버튼 내가 textArea2 액세스 및 글꼴 크기를 변경하려면 누르면
<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark"> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 
      override public function set data(value:Object):void 
      { 
       super.data = value; 

       invalidateDisplayList(); 
      } 

      private function list_itemRendererFunc(item:Object):void { 
       textArea2.setStyle("fontSize", 
           textArea2.getStyle("fontSize") + 2);  
     ]]> 
    </fx:Script> 
    <s:Label left="10" right="10" top="10" height="25" fontSize="14" maxDisplayedLines="1" 
      text="{data.title}" textAlign="center"/> 

    <s:TextArea id="textArea2" left="10" right="10" top="35" bottom="10" editable="false" 
       fontSize="12" skinClass="spark.skins.mobile.TextAreaSkin" 
       text="{data.description }"/> 
</s:ItemRenderer> 

. 도와 주시겠습니까?

답변

0

넣어 바인딩 공공 var에 itemRenderer를 내부에, 다음에 바인딩 fontSize는 같은 :

다음
<s:TextArea id="textArea2" fontSize="{mypublicvar}" ... 

버튼을 누르면, 목록 (또는 데이터 그리드?)의 itemrenderers 돌이, 새로운로 그 렌더러의 mypublicvar 변경 값 :

for(var i:int = 0; i < list.dataGroup.numElements; i++) 
{ 
    var itemRendererItem:CustomItemRenderer = list.dataGroup.getElementAt(i) as CustomItemRenderer; 
    itemRendererItem.mypublicvar += 2; 

    //you can also try 
    itemRendererItem.textArea2.setStyle("fontSize",... 
} 

나는 당신의 list_itemRendererFunc가 잘못된 장소에 있다고 생각하며 공식화 된 질문을 만들어야합니다.