День добрый, пытаюсь вытащить из БД определенные столбцы (что вообщем то получается, использую недавноупомянутый драйвер asSQL) и сформировать из них новый ArrayCollection с целью скормить в роли дата провайдера для компонента Tree. С этим есть проблемы(( Переделываю из примера с датагридом. Пробую сделать так:

Код AS3:
// выбираем нужныенам столбцы
var token:MySqlToken = st.executeQuery("SELECT userf, useri, usero FROM usrtab");
token.addEventListener(MySqlEvent.COLUMNDATA, function(e:MySqlEvent):void {
tempArr = new ArrayCollection(); // временная коллекция куда все складываем
// grid.columns = ResultsUtil.getDataGridColumns( e.resultSet );
// grid.dataProvider = users;
});
//listen for new rows
token.addEventListener(MySqlEvent.ROWDATA, function(e:MySqlEvent):void {
addNewRows(e.resultSet);
});
//add a responder
token.addResponder(new AsyncResponder(
function(data:Object, token:Object):void {
//call add new rows again to ensure we have all the rows
addNewRows(ResultSet(data));
},
function(info:Object, token:Object):void {
Alert.show("Error: " + info);
},
token
));
}
private function addNewRows(rs:ResultSet):void {
//get our data provider
var dp:ArrayCollection = tempArr;//.dataProvider as ArrayCollection;
var newRows:ArrayCollection = rs.getRows(false, dp.length, (rs.size()-dp.length));
dp.source = dp.source.concat( newRows.source );
// dp.refresh();
if(++ll == (count)) // определяем что обошли все записи
{
userArr = new ArrayCollection();
var total1:int = newRows.length; // определяем длинну подмассива
var total2:int = dp.length; // определяем длинну главной коллекции
for(var i:int = 0; i < total1; i++)
{
for(var j:int = 0; j < total2; j++)
{
newArr.getItemAt(i) += arrTotal.getItemAt(j).getItemAt(i) + ' '; // получаем елемент1 + елемент2 + елемент3
}
}
tree.dataProvider = newArr; // в конце назначаем, как дата провайдер
}
}
]]>
</mx:Script>
<mx:Tree id="tree" left="10" right="10" top="10" bottom="10" />
Как это правильно реализовать? на ас3 это выглядит примерно так:

Код AS3:
var arr1:Array = [];
var arr2:Array = [];
var arr3:Array = [];
var i:int = 0;
var j:int = 0;
for(i = 0; i < 500; i++) // заполняем наши массивы
{
arr1[i] = arr2[i] = arr3[i] = i;
}
var arrTotal:Array = [arr1, arr2, arr3]; // имитируем нашу ситуацию, в одной коллекции, есть несколько других коллекций
var newArr:Array = []; // делаем то что нам надо
for(i = 0; i < arrTotal[0].length; i++)
{
newArr[i] = ''; // делаем пустой елемент,
for(j = 0; j < arrTotal.length; j++)
{
newArr[i] += arrTotal[j][i] + ' '; // получаем елемент1 + елемент2 + елемент3
}
}
trace(newArr[100]); // на выходе охота получить что то типа этого.
я в тупике. Кто нибудь может посоветовать как хоть примерно это решить?
З.Ы. за основу взял
этот пример