Здравствуйте!
Опишу кратко задачу. Есть пользовательский объект типа myClass.
Есть массив myClassBuffer, в который планируется вносить объекты типа myClass.
При срабатывании определенного события тип myClass изменяется, а в буфер заносится его предыдущее значение. Вот грубый пример того, что нужно сделать: есть скажем спрайт отображения дерева. При нажатии на кнопку у дерева добавляется одна ветка, а в массив добавляется предыдущий спрайт этого дерева; Таким образом, если мы будем потом последовательно из массива читать мувики, получим последовательную хронологию действий.
Вроде бы задача простая, но при попытке прочитать последовательно из массива все предыдущие спрайты все прочитанные спрайты имеют текущее значение. Вот небольшой кусочек того, что делаю:

Код AS3:
var mySprite:Sprite = new Sprite();
var currentSprite:Sprite = new Sprite()
var mySpriteBuffer:Array = new Array();
//...здесь идет код отрисовки на mySprite нового элемента
//...при срабатывании события заношу в буфер:
currentSprite = new Sprite();
currentSprite = mySprite;
currentSprite.name = String("Sprite" + mySpriteBuffer.length);
mySpriteBuffer.push(currentSprite);
//и вывожу в трассировщик
trace(currentSprite.name); //1-й шаг: "Sprite0", 2-й шаг: "Sprite1", 3-й шаг: "Sprite2" и т.д.
//...и далее после нескольких шагов читаю из буфера
trace(mySpriteBuffer[0].name); //"Sprite2"
trace(mySpriteBuffer[1].name); //"Sprite2"
trace(mySpriteBuffer[2].name); //"Sprite2"
Собственно вопрос: почему в буфере сидят одинаковые спрайты?