ein Monat zu spät, aber ich habe in der gleichen Situation gewesen, wo ich bestimmte Funktionen benötigt, die eine TileList nicht mir geben konnte. see my question here
Also mein Repeater Raster ist 900 Pixel breit. Jede Spalte ist 300 Pixel breit und jede Zeile ist 31 Pixel hoch mit 1 Pixel Leerzeichen dazwischen. 3 Spalten insgesamt.
der Code:
<mx:Repeater id="rptCities" dataProvider="{citiesArr}">
<mx:Canvas label="{rptCities.currentItem.city}" x="{rptCities.currentIndex%3 * 300}" y="{int(rptCities.currentIndex/3) * 32}" width="300" height="31">
<mx:Label text="{rptCities.currentItem.city}"/>
</mx:Canvas>
</mx:Repeater>
so, wie Sie diesen Code lesen Sie:
der Bürgermeister Teil innerhalb des Repeaters in die Leinwand behandelt wird. Wie Sie sehen können, ist jede Leinwand 300 Pixel breit (Breite jeder Spalte) und 31 Pixel hoch. Indem Sie mit dem Modulo spielen, können Sie die x-Position des Elements definieren.
lassen Sie uns sagen, es gibt sechs Elemente in der Dataprovider:
x = "{rptCities.currentIndex% 3 * 300}"
ersten Artikel: 0% 3 == x-Position: 0 * 300
Sekunden Titel: 1% 3 == x-Position: 1 * 300
dritter Artikel: 2% 3 == x-Position: 2 * 300
her Artikel : 3% 3 == x-position: 0 * 300
Das sorgt für die x-Position der Elemente. Die y-Position der Elemente, die ich 32 definiert habe, ist ein konstanter Wert, weil ich 1px Abstand dazwischen haben möchte. Durch Konvertieren der Zahl in eine Ganzzahl erhalten Sie gerundete Werte (kursive Werte sind Zahlenwerte, normale Schriftart ist die Ganzzahl flex berücksichtigt)
y = "{int (rptCities.currentIndex/3) * 32}"
erstes Element: 0/3 == y-Position: 0 * 32
zweites Element: 1/3 == y-Position: 0 * 32 (0,33)
dritter Artikel: 2/3 == y-Position: 0 * 32 (0.66)
her Artikel: 3/3 == y-Position: 1 * 32
wenn der Repeater bei dem vierten Punkt ist die x- und y-Position = x: 0 und y: 32, die ist auf der zweiten 'Reihe'
Sorry für die ziemlich große Antwort.
Amen. Lernen Sie Datenprovider und itemRenderer zu lieben! –
Ich LIEBE diese Lösung nicht, aber für das, was ich mache, wird es funktionieren. Vielen Dank! Immer noch neugierig, ob jemand einen anderen Weg kennt, es zu tun? – davidemm
nicht sicher, was nicht "lieben" soll? Fehlt Ihnen ein bisschen Funktionalität in der oben genannten Lösung, die Sie brauchen? – Shua