次の問題が発生しています。Flexのitemrendererでツールチップが正しく更新されない問題
私はitemRendererには、TileListコントロールのitemRendererのようFavoriteItemと呼ばれる使用(favoriteLinksListと呼ばれる)TileListコントロールのデータプロバイダとして演技のArrayCollection
を持っています。
<?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>
あなたが見ることができるように、その内の2つの項目のツールヒントが
data.tooltipから取られている。これは、正常に動作します:このFavoriteItemは次のようになります。
問題が変更されたら、ツールチップを更新しています。
ArrayCollection内のオブジェクト(Object型)にはそれぞれtooltipというプロパティがあります(itemRendererがその情報を取得しているところです)。
このプロパティを新しい値に変更すると、itemRendererのツールチップに変更が反映されません。
タイルリスト内の項目の1つをクリックしても、成功しなかった場合にトリガされるイベントからitemRendererを取得することによって手動で設定しようとしました。
例:れるIListItemRenderer:静的型mx.controls.listClassesと参照による可能性が未定義のプロパティのタイトルの アクセス:ツールチップを更新しましたが、これはコンパイルエラーを与えた後
event.itemRenderer.title.toolTip = event.currentTarget.selectedItem.tooltip;
。
favoriteLinksList配列コレクションでrefresh()を実行しようとしましたが、これは混在した結果をもたらしました。ツールチップが正しく更新されましたが、タイルリストの項目のうちの1つ(最初のもの)が欠落しました。これはFlexのバグのようです。データプロバイダには、リフレッシュの前後に同じ数の要素があります。タイルリストの最初の要素をクリックすると、データプロバイダはリフレッシュ前後に同じ数の要素を持ちます。
すべてのサポートをよろしくお願いいたします。
私が貼り付けたコードは何らかの理由で正しくフォーマッタしていませんでした。ここにコードへのリンクがあります:http://pastie.org/1341113 – KensoDev
title.toolTip = data.tooltipの "nullオブジェクト参照のプロパティにアクセスできません"というメッセージが表示されるtitle.toolTip =値はまだありませんが、まだ喜んではいません:( favoriteLinksListは[Bindable]で、アプリケーション起動時の変更はタイルリストに正しく反映されます。 –
favLinksListはバインド可能で、データをtileListに渡すと、個々のオブジェクトへの変更がタイルリストに伝播されていてはいけません。以下の解決策を見つけてください。 –