PDA

Просмотр полной версии : тип dataProvider-а


Azy
13.02.2007, 15:39
Имеется mx:HorizontalList
Заекстнедилю. Написал функцию добавления элемента:
public function addItem(id:Number)
{
var data = new Array();
var obj:Object = new Object();
obj.image = "http://192.168.0.6/images/price/" + id + ".jpg";
data.push(obj);
var oldData = dataProvider;
trace(oldData.length);

if (oldData.length>0)
{
for (var i:Number=0; i<oldData[0].length; i++)
{
data.push(oldData[i]);
}
}
dataProvider = data;
}
По идее тип датапровайдера указан как Object. Но при трейсе ясно видно что это ArrayCollection. Спрашивается: как явно указать тип переменной oldData, если до компиляции это Object а после - ArrayCollection?

__i
13.02.2007, 15:57
Загляни в метод установки датапровайдера у листовых компонент. Там возможны несколько вариантов:
XML, String(вроде), ArrayCollection... и прочая ботва, но если ты задаешь датапровайдер "неизвестно что", типа объект или еще какуюто гадость, то в методе все конвертиться в ArrayCollection.
класс ListBase:
public function set dataProvider(value:Object):void
{
......
else
{
// convert it to an array containing this one item
var tmp:Array = [];
if (value != null)
tmp.push(value);
collection = new ArrayCollection(tmp);
}
.....