2012-01-16 3 views
0

アイテムレンダラーでコンポーネントのテキストサイズを動的に変更するにはどうすればよいですか?アイテムレンダラーのコンポーネントを動的に変更するにはどうすればいいですか?

は、ここに私のCustomItemRenderer.mxmlです:

ボタンiが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> 

。 私を助けることができますか? (?またはデータグリッド):ようのfontSizeにバインドし、その後、itemRendererの内側にバインド可能なプロパティpublic varを入れ

答えて

0

<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が間違った場所にあると思うし、あなたがよりよい策定質問を行う必要があります。

関連する問題