Есть ли способ назначить индекс по моему выбору для коллекции массивов в flex? - PullRequest
0 голосов
/ 14 декабря 2010

Я хочу дать индекс массива для коллекции массивов, скажем, 205, когда он запущен, возможно ли это сделать в flex или любой другой альтернативе.

на самом деле мне нужно индексировать объекты с определеннымнет, в коллекции 2D-массивов

скажем

205 a c d g f d 
268 s g h g f f
805 d g h h f f d

где целые числа являются индексами, а алфавиты - объектами, на которые ссылаются эти целые числа

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

ArrayCollections - обертки для массивов (с большей функциональностью + связывание + все виды удивительных [если можно использовать удивительное как существительное]).

Класс Array не такой " ассоциативный ", как класс Dictionary. Таким образом, вы можете использовать словарь, который, вероятно, то, что вы действительно ищете. Или вы можете расширить ArrayCollection (который расширяет ListCollectionView, который расширяет Proxy - что было предложено @ BrianBenisio). Так что это действительно зависит от вашего проекта, того, чего вы хотите достичь, если вам нужно связывание, и сколько у вас есть времени.

Вы привели пример, детализировав 2D коллекцию:

205 a c d g f d 
268 s g h g f f
805 d g h h f f d

поэтому я собираюсь догадаться, что вы имеете дело с источником данных, основанным на xml (или, по крайней мере, на основе чего-то похожего на SimpleDB, со строками, которые не имеют статических столбцов). Так что если бы это был я, я бы использовал Array и создал бы внутренний класс «ArrayUtils», который служит средством для вашей цели. Хотя, если вы используете последнюю версию Flex, вы можете подумать о том, чтобы набрать свой массив и пойти по пути использования класса Vector. Благодаря настраиваемому типизированному вектору вы получите лучшую производительность и настраиваемые функции, которых в противном случае вам не хватало бы.

Удачи в любом случае.

Рок, Джереми

1 голос
/ 14 декабря 2010

У меня возникли проблемы с полным пониманием вашего вопроса, но если я вас правильно понимаю, вы хотите переопределить метод индексации объекта?

Самый простой способ сделать это - расширить класс Proxy . Вам нужно переопределить nextNameIndex(index:int):int и nextValue(index:int):*. Если это немного сбивает с толку, просто ставьте контрольные точки в переопределениях, когда вы пытаетесь сделать что-то вроде myObject[205].

Удачи:)

...