Adobe Flex: ItemRenderer…

In jeder Programmiersprache und jedem Framework gibt es verschiedene Wege zum Ziel zu kommen. Einmal der Quick und Dirty Weg, der auf dem “HighEnd Entwickler System” gut funktioniert aber in der Realwelt Unzufriedenheit hervorruft, und (neben weiteren) den Weg das gleiche Ziel Ressourcen schonend umzusetzen.

So geschehen beim itemRenderer im PZ Projekt.

Eine TileList soll Bilder anzeigen und zwar eine Menge.

Quick N’ Dirty: Als itemRenderer habe ich eine Komponente auf Basis der Canvas gebaut in der ein Bild liegt. Das funktioniert wunderbar und sieht gut aus, doch ein schlechtes Gewissen hat man schon, wenn in der TileList nachher 40 mal dieses Objekt angezeigt wird.

Die Entwickler von Flex haben aber soweit gedacht, dass nur die sichtbaren itemRenderer erstellt werden und diese auch wiederverwendet werden. Aber trotzdem wurde eine Schwerfälligkeit spürbar, und ein Fehler meinerseits auch.

Auf der Suche warum in meinen itemRenderern nach Scrollen falsche Bilder angezeigt wurden, fand ich die Lösung recht schnell (Wiederverwendung der gleichen itemRenderer und schlechte Komponentenprogrammierung) und auch den Hinweis das man bei itemRenderern mehr rausholen kann.

Anstatt die große schwere Canvas mitzuschleppen und alle ihre Vorzüge zu geniessen, erweitert man besser die UIComponent und implentiert IListItemRenderer wie Peter Ent es vormacht. Da sein Beispiel so gut ist, verzichte ich hier auf eigenen Code.