2010-09-28 23 views
0

J'utilise TileList dans un site Web Flex 3. Je dois définir rowCount et columnCount à des facteurs du nombre total d'éléments dans mon tableau. Par exemple, disons qu'il y a 15 éléments dans mon tableau. Ensuite, je voudrais placer le rowCount à 3 et le columnCount à 5 (3x5 = 15). Ou si j'avais 16 éléments dans le tableau, alors je voudrais mettre le rowCount à 4 et le columnCount à 4 (4x4 = 16). Le problème est que la longueur du tableau varie. C'est tiré d'une base de données.Définition de RowCount et de ColumnCount dans un Flex 3 TileList

Des suggestions sur la façon de gérer ce problème?

Merci.

-Laxmidi

Répondre

1

Je suppose que vous avez déjà terminé le processus jusqu'à un certain point, où vous chargez vos articles dans un ArrayCollection (permet de l'appeler A), qui est un fournisseur de données de la TileList.

Dans ce cas, vous pouvez simplement ajouter quelque chose comme ceci dans le rappel de service, où l'AC est créé:

for (var i:int=Math.sqrt(A.length)+1e-9;i>0;i-=1) 
    if (A.length%i==0) 
    { 
    tileList.columnCount=i; 
    tileList.rowCount=A.length/i; 
    break; 
    } 

Ce code vous donne RxC TileList où R = C si a.length est un carré , sinon il sera aussi proche du carré que possible, alors que R> C (ce qui est généralement souhaitable en raison du défilement vertical par rapport au défilement horizontal).