我遇到以下問題。在Flex中的itemrenderer上正確刷新工具提示時出現問題
我的影片充當一個TileList(稱爲favoriteLinksList)
數據提供我使用的itemRenderer稱爲FavoriteItem作爲TileList的itemRenderer的一個ArrayCollection。這FavoriteItem看起來是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
width="280" height="163"
horizontalAlign="center"
paddingLeft="5" paddingRight="5" paddingTop="0" paddingBottom="0" xmlns:ns1="*">
<mx:Canvas width="100%" height="100%">
<mx:Image
id="thumbnail"
width="178" height="115"
source="{data.thumbnail}"
toolTip = "{data.tooltip}" x="46" y="10"/>
<mx:Text
id="title"
text="{data.tileListTitle}"
width="254"
toolTip="{data.tooltip}" x="10" y="133"/>
</mx:Canvas>
</mx:VBox>
正如你可以看到,在這兩個項目的提示從data.tooltip
這工作正常拍攝。
問題是刷新工具提示時,它已經改變。
ArrayCollection中的對象(Object類型)每個都有一個名爲tooltip的屬性(很明顯,因爲這是itemRenderer從中獲取信息的地方)。
當我將此屬性更改爲其新值時,itemRenderer的工具提示不會更改以反映此情況。
我試圖通過從單擊tilelist中的某個項目但未成功觸發的事件中獲取itemRenderer來手動設置它。
實施例:
event.itemRenderer.title.toolTip = event.currentTarget.selectedItem.tooltip;
在已經更新工具提示但是這給編譯錯誤:通過靜態類型mx.controls.listClasses參考可能未定義的屬性標題的 訪問:IListItemRenderer。
我也嘗試在favoriteLinksList數組集合上執行refresh(),但是這給了混合結果。工具提示已正確更新,但tilelist中的其中一項(第一項)已丟失!這似乎是一個Flex錯誤。數據提供程序在刷新前後具有相同數量的元素,如果點擊tilelist中的第一個元素,則不會發生這種情況。
非常感謝所有幫助。
出於某種原因我粘貼的代碼格式不正確。這裏有一個代碼鏈接:http://pastie.org/1341113 – KensoDev 2010-12-02 12:53:00