Установка RowCount и ColumnCount в Flex 3 TileList - PullRequest
0 голосов
/ 28 сентября 2010

Я использую TileList на веб-сайте Flex 3. Мне нужно установить rowCount и columnCount на факторы общего количества элементов в моем массиве. Например, предположим, что в моем массиве 15 элементов. Затем я хотел бы установить для rowCount значение 3, а для columnCount значение 5 (3x5 = 15). Или, если бы у меня было 16 элементов в массиве, я бы хотел установить для rowCount значение 4, а для columnCount значение 4 (4x4 = 16). Проблема в том, что длина массива варьируется. Он извлекается из базы данных.

Любые предложения о том, как решить эту проблему?

Спасибо.

-Laxmidi

1 Ответ

1 голос
/ 04 ноября 2010

Полагаю, вы уже завершили процесс до того момента, когда вы загружаете свои элементы в коллекцию ArrayCollection (назовем ее A), которая является dataProvider в TileList.

В этом случае выможно просто добавить что-то подобное в обратный вызов службы, где создается AC:

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;
  }

Этот код дает вам RxC TileList, где R = C, если A.length является квадратом, в противном случае он будет как можно ближевозвести в квадрат, насколько это возможно, в то время как R> C (что обычно желательно из-за вертикальной и горизонтальной прокрутки).

...