我已經創建了自定義IconItemRenderer
,其中標籤&消息正在圖標上顯示(在我的情況下,它是一個大圖像)。我想在圖像加載期間隱藏兩個標籤&消息。所以我默認它們是隱形的。當圖像加載時,我會讓它們可見。Flex Mobile: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實例,也沒有標籤或消息或圖像是不可見的(因爲我的默認值)。
那麼我怎麼能早些使用 crated IconItemRenderer
實例?
或者是否可以使用單個IconItemRenderer
實例(如單數)?
或是否有任何Event
Dispathcer
這表明項目中的數據已存在?
它通常是有幫助的,以顯示你的代碼,在這種情況下,你的渲染器的代碼,所以我們可以得到正在發生的事情的一個更好的主意。 – 2013-02-11 07:36:28
當然。新增代碼示例 – 2013-02-11 07:43:43