Здравствуйте
В AS ItemRenderer-е добавляю в качестве child BitmapImage.
Добавляю слушателей к нему тут же в createChildren
В переопределенном методе set data устанавливаю что загружать, но ничего не загружается, и не рассылаются события элеменотом.
Где я ошибся ?

Код AS3:
package swiz.views.components.itemRenderers
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.HTTPStatusEvent;
import flash.events.IOErrorEvent;
import flash.filters.DropShadowFilter;
import mx.core.UIComponent;
import mx.core.mx_internal;
import spark.components.Group;
import spark.components.LabelItemRenderer;
import spark.components.VGroup;
import spark.components.supportClasses.StyleableTextField;
import spark.primitives.BitmapImage;
import swiz.model.AppSettings;
public class ExcurtionIR extends LabelItemRenderer
{
protected var background:Sprite;
protected var bitmapBackground:Sprite;
protected var bitmap:BitmapImage;
protected var nameLabelDisplay:StyleableTextField;
public function ExcurtionIR()
{
super();
}
override public function set data(value:Object):void
{
super.data = value;
if(data)
{
if(nameLabelDisplay)
{
nameLabelDisplay.text = data.label;
}
if(bitmap)
{
trace("loading icon="+data.icon);
bitmap.source = data.icon;
}
}
}
protected function bitmapLoadCompleteHandler(event:Event):void
{
trace("icon loaded");
}
protected function bitmapErrorHandler(event:IOErrorEvent):void
{
trace("ERROR : "+event.text);
}
protected function bitmapHttpStatusHandler(event:HTTPStatusEvent):void
{
trace("http status "+event.status);
}
override protected function createChildren():void
{
trace("create children");
background = new Sprite();
addChild(background);
background.filters = [new DropShadowFilter(2,2,45,.3)];
bitmapBackground = new Sprite();
addChild(bitmapBackground);
bitmapBackground.graphics.beginFill(0x000000);
bitmapBackground.graphics.drawRect(0,0,AppSettings.excurtionIRHeight,AppSettings.excurtionIRHeight);
bitmapBackground.graphics.endFill();
bitmap = new BitmapImage();
bitmap.scaleMode = "letterbox";
var biContainer:Group = new Group();
biContainer.addElement(bitmap);
bitmapBackground.addChild(biContainer);
bitmap.addEventListener(IOErrorEvent.IO_ERROR,bitmapErrorHandler);
bitmap.addEventListener(Event.COMPLETE,bitmapLoadCompleteHandler);
bitmap.addEventListener(HTTPStatusEvent.HTTP_STATUS,bitmapHttpStatusHandler);
super.createChildren();
labelDisplay.multiline = true;
labelDisplay.wordWrap = true;
labelDisplay.setStyle("color",0x529257);
labelDisplay.setStyle("fontSize",AppSettings.excurtionIRNameFontSize);
labelDisplay.setStyle("textAlign","center");
invalidateProperties();
invalidateSize();
invalidateDisplayList();
}
override protected function measure():void
{
super.measure();
measuredHeight = bitmapBackground.height + AppSettings.excurtionIRPaddingTop*2;
}
override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
{
background.graphics.beginFill(0xffffff);
background.graphics.drawRect(0,0, unscaledWidth - AppSettings.excurtionIRPaddingTop*2,AppSettings.excurtionIRHeight+AppSettings.excurtionIRPaddingTop);
background.graphics.endFill();
}
override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
{
super.layoutContents(unscaledWidth, unscaledHeight);
// layout all the subcomponents here
//bitmapBackground.x = AppSettings.excurtionIRPaddingTop * 1.5;
//bitmapBackground.y = AppSettings.excurtionIRPaddingTop/2;
setElementSize(bitmap,AppSettings.excurtionIRHeight,AppSettings.excurtionIRHeight);
setElementSize(labelDisplay,unscaledWidth - (AppSettings.excurtionIRHeight + AppSettings.excurtionIRPaddingTop*14), unscaledHeight);
setElementPosition(labelDisplay,AppSettings.excurtionIRHeight+AppSettings.excurtionIRPaddingTop*2 ,AppSettings.excurtionIRPaddingTop * 3);
}
}
}