![]() |
Ошибка addItemAt() в ArrayCollection
Здравсвуйте.
имеется массив: public var xxx:ArrayCollection = new ArrayCollection(); пытаюсь добавить в него объект с помощью addItemAt() var myObj:myType = new myType(); xxx.addItemAt(myObj, 1); выдает ошибку: Index '1' specified is out of bounds. Понимаю, что это происходит потому, что в xxx нет ни одного элемента, нудно начинать добавлять с индекса 0, тогда все хорошо, но, возможно ли как-то начать заполнение массива не с нулевого, а первого, например, или пятого элемента? гугление привело к такой статье: addItemAt() in ArrayCollection попробовав сделать то, что там предлагают (может и не все попробовал, за плохим знанием английского), не пришел ни к какому результату. А пробовал я такой способ объявления: public var xxx:ArrayCollection = new ArrayCollection(new Array(size)); так же там предлагается использовать сортировку, но очень не хотелось бы это делать. Может кто-нибудь сталкивался с таким вопросом? Спасибо. |
если известен максимальный размер массива - заполни его предварительно пустыми значениями, а потом просто заполняй пустоту своими данными.
|
а чем обычный массив Array не подходит? Возможно я упускаю из вида какие-то преимущества ArrayCollection..
|
в принципе, массив вполне подходит, что-то я не подумал, что там такой проблемы может не быть, спасибо =)
но это еще не все, у меня используется <s:Group> в который я пытаюсь добавлять свои компоненты (основанные на <s:Group>) при помощи addElementAt() и там та же проблема. Массивом тут не заменишь =) может есть варианты? я вспомнил почему я использовал ArrayCollection, как минимум, мне надо удалять объекты из массива, не зная индекс, но теперь думаю, что индекс я знаю=) так что массив пока меня устраивает... То есть у ArrayCollection есть такие замечательные функции, как getItemIndex и removeItemAt. Добавлено через 2 минуты Цитата:
Да и количество элементов, в общем-то, не известно заранее. Известно только максимальное количество элементов, но их может быть и меньше |
Цитата:
getItemIndex - это indexOf() removeItemAt - splice( index, 1 ) И потом, вы можете пользоваться обычным массивом, а потом, при необходимости, из него уже создавать ArrayCollection. |
Цитата:
Насчет ArrayCollection. Старайтесь избегать использования этого класса, он слишком тяжелый для "повседневных" задач. Единственный случай когда его следует использовать, это если есть необходимость автоматически фильтровать данные. |
Цитата:
Добавлено через 1 минуту Цитата:
|
| Часовой пояс GMT +4, время: 17:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.