_root.animation=_root.frame.slice();
ovvero crei un array chiamato animation che è la copia esatta di _root.frame.
la cosa del tenere compatti i valori... boh, a me sembra un passaggio in più, visto che arr_x e arr_y servono solo a pushare gli array in _root.frame... anzi, potevi fare
for (i=0; i<_root.maxel; i++) {
_root.frame.push([_root["obj"+i].ar_x.slice(),_root["obj"+i].ar_y.slice()]);
}
tanto struct sarà un oggetto con gli ultimi due ar_x e ar_y (visto che con il for li sovrascrivi ogni ciclo)... l'unico vantaggio è, al max, che fai un singolo delete al momento di fare pulizia invece che due... boh, fai tu