我已经创建了自定义IconItemRenderer
标签和消息显示在图标上(在我的情况下它是一个大图像)。我想在加载图像期间隐藏标签和消息。所以我默认让它们不可见。当图像被加载时,我让它们可见。
override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
{
super.layoutContents(unscaledWidth, unscaledHeight);
setElementPosition(busyIndicator, (this.width - iconDisplay.width) / 2, (this.height - Dimensions.BUSY_INDICATOR_EDGE_LENGTH) / 2);
setElementPosition(iconDisplay, (this.width - iconDisplay.width) / 2, 0);
setElementPosition(labelDisplay, iconDisplay.x + 20, iconDisplay.y + iconDisplay.height / 4);
setElementPosition(textFieldProductNumber, iconDisplay.x + 20, labelDisplay.y + labelDisplay.height + 10);
setElementPosition(messageDisplay, iconDisplay.x + 20, textFieldProductNumber.y + textFieldProductNumber.height);
setElementSize(busyIndicator, Dimensions.BUSY_INDICATOR_EDGE_LENGTH, Dimensions.BUSY_INDICATOR_EDGE_LENGTH);
setElementSize(textFieldProductNumber, labelDisplay.width, labelDisplay.height / 2);
iconDisplay.addEventListener(Event.COMPLETE, onIconComplete);
if(!isIconComplete)
{
busyIndicator.visible = true;
iconDisplay.visible = false;
labelDisplay.visible = false;
textFieldProductNumber.visible = false;
messageDisplay.visible = false;
}
}
protected function onIconComplete(event:Event):void
{
busyIndicator.visible = false;
iconDisplay.visible = true;
labelDisplay.visible = true;
textFieldProductNumber.visible = true;
messageDisplay.visible = true;
isIconComplete = true;
iconDisplay.removeEventListener(Event.COMPLETE, onIconComplete);
invalidateDisplayList();
}
一切正常,但是如果我将另一个视图推入Navigator
并返回到我的 IconItemRenderer 所在的视图,系统会创建另一个 IconItemRenderer 实例,并且标签、消息或图像也不可见(因为我的默认值)。
那么如何使用较早的cratedIconItemRenderer
实例呢?
或者是否可以使用单个 IconItemRenderer
实例(如单音)?
或者是否有任何表明项目中的数据已经存在?Event
Dispathcer