|
Modus ponens
модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
|
ОК, почему предвзятость:
ArrayCollection называется не правильно, это представление коллекции. Это не коллекция. Он не работает с векторами. Он очень медленный. Но самое плохое, что в нем есть это механизм IPE - ItemPendingError этот механизм якобы обеспечивает пейджинг. Т.е. гипотетически можно переслать только часть данных / заполнить коллекцию частично, но оперировать ею так, как будто она заполнена целиком. Этот механизм написан очень плохо, и от него только проблем больше. Например, с какого-то перепуга ArrayCollection считает себя в праве самостоятельно заменять элементы в массиве, который обороачивает или просто дублировать массив. Представьте на секунду, что у вас в массиве находятся ссылки на файлы, а тут какой-то, не побоюсь этого слова, идиот, взял и сдублировал этот массив - попытался создать копию файлов... Кроме того, в ситуациях, когда эта дрянь работает с Object'ами или Proxy, оно создает им дополнительное свойство по которому оно их распознает, типа uid / mx_internal_uid а потом пытается исходя из этого заменять объекты, что неминуемо приводит к ошибка / ситуации когда не возможно понять с каким именно объектом вы работаете и т.п. Вообще, можно долго этот класс ругать, вам это не поможет, т.как Адоби писали фреймворк который вы используете, и просто хотели пропихнуть свою ахинею / сделать так, чтобы вам пришлось использовать их AS3 фреймворк...
В конце концов, если хочется использовать флексовые представления коллекций, то есть смысл использовать их интерфейсы, а имплементации писать самому, ну и лучше использовать IList, а не ICollectionView, у последнего еще и багов немеряно. Смысл будет в том, что после танцов с бубном это можно будет прикрутить к флексовым GUI компонентам. Не то, чтобы эти компоненты были чем-то лучше остальной части фреймворка, но это просто много работы их с нуля писать.
Вы не поняли про не-ECMAScript классы. Речь была о том, что можно коневерировать var i:int = int("1"); но нельзя var m:MovieClip = MovieClip(new BitmapData()); например.
Про Boolean в яве - знаете анекдот про програмиста и два стакана? Когда програмист ложится спать, то ставит рядом с кроватью два стакана - один с водой, другой пустой, первый - на случай если проснется ночью и захочется пить, а вротой на случай если не захочется. К сожалению флексовый фреймоврк написан ява програмистами, и я бы не удивился, если бы в нем была бы возможность как-то протащить этот бред из явы и похожее ООП спинного мозга, но, ради бога, зачем вам этот бред?
__________________
Hell is the possibility of sanity
Последний раз редактировалось wvxvw; 19.06.2010 в 14:57.
|