Тестируем этот скрипт.

Код:
var str = "абвгд";
var data:Array = [];
var sl = str.length;
trace(str+'\t'+str.length);
init();
function init() {
var tmp:Array = str.split('');
trace("1 трейс массива");
for (var i = 0; i<sl; i++) {
var a = tmp.shift();
tmp.push(a);
data.push(tmp+"!");
trace(data[i]);
}
trace("А вот 2 трейс готового массива!");
for (i=0; i<sl; i++) {
trace(i+'\t'+data[i]);
}
}
вот и ответ на ваш вопрос

Код:
var str = "абвгд";
var data:Array = [];
var sl = str.length;
trace(str+'\t'+str.length);
init();
function init() {
var tmp:Array = str.split('');
trace("1 трейс массива");
for (var i = 0; i<sl; i++) {
var a = tmp.shift();
tmp.push(a);
trace(tmp);
//следующая строка заполняет каждый элемент массива data содержимым tmp это будет видно в трейсе
data.push(tmp);
trace(data);
}
}
Кажется ошибка работы массивов...0_0