Здравствуйте, пытаюсь сделать ItemRenderer наподобие этого:
http://imglink.ru/show-image.php?id=...4e334eed4191f9
Наследую класс LabelItemRenderer и дополняю его (как в рендерере из рисунка) следующими элементами: SkinnableContainer1, image, label1, label2. Ниже написан код этого рендерера, все что делал сам - выделил красным, остальное сделал Flash Builder . Подскажите что не так? первая ошибка - не отображается датапровайдер, пишет [Object], т.е. не задано свойство labelField, только как его задать для кастомного рендерера? Ну и без этого там немало ошибок, наверно.
Код:
package renderer
{
public class listRender extends LabelItemRenderer
{
private var img:Image;
private var label1:Label;
private var skinnableContainer1:SkinnableContainer;
private var label2:Label;
public function listRender()
{
super();
skinnableContainer1= new SkinnableContainer();
img = new Image();
skinnableContainer1.addElement(img);
label1 = new Label();
skinnableContainer1.addElement(label1);
label2 = new Label();
skinnableContainer1.addElement(label2);
}
override public function set data(value:Object):void
{
super.data = value;
img.source = value.img;
label1.text = value.text;
label2.text = value.text2;
}
override protected function createChildren():void
{
super.createChildren();
}
override protected function measure():void
{
super.measure();
skinnableContainer1.measuredHeight = 120;
skinnableContainer1.measuredWidth = 120;
img.measuredHeight = 32;
img.measuredMinWidth = 32;
label1.setStyle("fontSize", 15);
label2.setStyle("fontSize", 11);
}
override protected function drawBackground(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.drawBackground(unscaledWidth, unscaledHeight);
skinnableContainer1.setStyle('backgroundColor',0x333333);
}
override protected function layoutContents(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.layoutContents(unscaledWidth, unscaledHeight);
skinnableContainer1.layout = new HorizontalLayout();
}
}
}
Датапровайдер примерно такой
Код:
<fx:Object text="Стратегия" text2="ccccccccccccccccc" img="../assets/11.png"/>
<fx:Object text="Модель" text2="bbbbbbbbb" img="../assets/22.png"/>
<fx:Object text="Flex" text2="aaaa" img="../assets/33.png"/>