0

次のようにImageCellクラスを拡張することにより、TileListコンポーネントのカスタムセルレンダラーを実装しました。

package 
{
   import fl.controls.listClasses.ICellRenderer;
   import fl.controls.listClasses.ImageCell;
   import fl.controls.Label;

   public class CustomImageCell extends ImageCell implements ICellRenderer
   {
      public var lblName:Label;

      public function CustomImageCell() 
      {
          lblname = new Label();
          addChild(lblName);
      }
   }
}

私はそれを次のように割り当てました:

tilelist.setStyle("cellRenderer", CustomImageCell);

タイルリストにアイテムを追加するとき、セルレンダラーのそのラベルにテキストを渡すにはどうすればよいですか?

tilelist.addItem({label:"Let this text go to the lblName", source:new Bitmap(bData)});

編集:

これを行っているのは、TileListのアイテムのラベルを複数行にする必要があるためです。これを行う唯一の方法は、カスタムセルレンダラーを実装することです。

4

1 に答える 1

2

答えが見つかりました。set dataメソッドをオーバーライドし、そこから変数に値を割り当てる必要があります。

override public function set data(value:Object):void {
        _data = value;
        if(_data.label) lblName.text =_data.label;
}
于 2012-07-31T17:13:20.133 に答える