0
我有一个组合框使用自定义的itemrenderer来显示图像。当在列表中上下滚动图像时,图像会随机排列。我该如何阻止?Flex组合框项目不对齐
public class PinRenderer extends UIComponent implements IDataRenderer, IListItemRenderer
{
private var currentPin:DisplayObject;
private var _data:Object;
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data = value;
invalidateDisplayList();
}
override protected function measure():void
{
super.measure();
measuredHeight = measuredMinHeight = 19;
measuredWidth = measuredMinWidth = 19;
}
private var pins:Dictionary = new Dictionary();
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var note:PerformanceNote;
if (data != null && (data is PerformanceNote || data is Number))
{
var color:uint;
if (data is PerformanceNote)
{
color = PerformanceNote(data).note_pin_color;
}
else if (data is Number)
{
color = Number(data);
}
var pinClass:Class = Constants.PIN_IMAGES[ color ];
var pin:DisplayObject = pins[ pinClass ];
if (!pin)
{
pin = new pinClass();
pin.x = (unscaledWidth - pin.width) /2;
pin.y = (unscaledHeight - pin.height)/2;
pins[ pinClass ] = pin;
}
if (currentPin)
{
removeChild(currentPin);
}
addChild(pin);
currentPin = pin;
}
}
}
你能发表一些代码吗?对于你的自定义渲染器看起来是什么样的想法很难排除任何想法:) – bedwyr 2010-03-30 02:23:21