Цитата:
Сообщение от Nirth
Потому что делать надо так:
 Код AS3:
var ac:ArrayCollection = new ArrayCollection([1...1000]);
for( var i:uint = 0; i < ac.length; i ++ )
trace( ac.getItemAt( i ) );
А не пользоватся оператором доступа ^_^
|
Это те же яйца, только в профиль, оно вообще одно и то же делает т.как ArrayCollection наследуется от Proxy и в getProperty она вызывает getItemAt() - проблема именно в нем. Потому что кто-то волевым решением постановил, что одна и та же ArrayCollection должна быть во все бочки затычкой, и поэтому getItemAt весь завернут в... try-catch-rethrow, а нужно это для того, чтобы испустить ItemPendingError, которая нужна для биндинга. Это, в свою очередь нужно для того, чтобы при желании можно было организовать пейджинг. То есть, ситуация описаная в первом посту может оказаться вполне реальной если у вас страница данных = один элемент в коллекции

Соответственно, обращение к элементу в коллекции уводит програму в такой глубокий стак, что даже просто разбираться не хочется. Т.е. уже просто само по себе наличие try-catch в обращении к элементу в колекции = х5-10 время доступа, дальше помножим это еще и на то, что оно динамическое, дальше на то, что оно унаследовано 100500 раз, дальше на то, что оно еще и вызовет и поймает ошибки в других местах...
