Гружу кучу видео (ссылки в XML, заранее кол-во неизвестно), каждое в свой NetStream

Код AS1/AS2:
my_xml.onLoad = function(success)
{
if (success)
{
xmlNode = my_xml.firstChild.childNodes;
videosTotal = xmlNode.length;
for (i = 0; i < videosTotal; i++)
{
videosArray[i] = xmlNode[i].childNodes[0].firstChild.nodeValue;
}
for (i = 0; i < videosTotal; i++)
{
_root["nc" + i] = new NetConnection();
_root["nc" + i].connect(null);
_root["my_ns" + i] = new NetStream(_root["nc" + i]);
duplicateMovieClip(videoClip, "videoClip" + i, i);
_root["videoClip" + i].myVideo.attachVideo(_root["my_ns" + i]);
// Определяю длительность каждого, но здесь проблема
_root["my_ns" + i].onMetaData = function(infoObject:Object)
{
durationArray[i] = infoObject.duration;
};
_root["my_ns" + i].play(videosArray[i]);
_root["my_ns" + i].seek(0);
_root["my_ns" + i].pause(true);
_root["videoClip" + i].swapDepths(_root.getNextHighestDepth());
}
}
};
my_xml.load("video.xml");
Проблема в том, что пытаюсь занести в массив durationArray продолжительность текущего потока ["my_ns" + i]. Если трэйсить это место, i всегда равно 5 (тестирую на 5 видео), поэтому текущая продолжительность записывается на 5 индекс в массиве, переписывая его каждый раз. Как можно исправить?
PS я делал просто

Код AS1/AS2:
durationArray.push = infoObject.duration;
Так работает, заносит все на свои места, но флэш ведет себя странно и порядок занесения элементов получается каждый раз рандомный, несмотря на перебор от 1 до 4 о_О От размера видео файла не зависит. Буду признателен за объяснение сего факта.