Всем доброго времени суток!
Есть такая не очень хорошая вещь. Когда я копирую публичный массив aMyArray1 в aMyArray2, с помощью оператора приравнивания:

Код AS1/AS2:
aMyArray2 = aMyArray1;
А потом изменяю данные в массиве aMyArray2, то эти изменения отражаются и в первом массиве.
В своих проектах я решаю эту проблему следующим образом:

Код AS1/AS2:
function copyArray(aSource:Array):Array
{
var aTemp:Array = Array();
var nCnt:Number = aSource.length;
for (var i = 0; i < nCnt; i++)
{
if (aSource[i] instanceof Array)
{
aTemp[i] = copyArray(aSource[i]);
}
else if (aSource[i] instanceof Object)
{
aTemp[i] = copyObject(aSource[i]);
}
else
{
aTemp.push(aSource[i]);
}
}
return aTemp;
}
function copyObject(oSource:Object)
{
var oTemp:Object = {};
for (var i in oSource)
{
if (oSource[i] instanceof Array)
{
oTemp[i] = copyArray(oSource[i]);
}
else
{
oTemp[i] = oSource[i];
}
}
return oTemp;
}
Частое обращение к этим функциям выходит очень ресурсоемким. Я знаю, что при правильной организации кода, можно избежать использование таких обходных путей. Но вот как осуществить эту правильную организацию? Заранее спасибо.