Это лучшее, что я могу для вас сделать:
package
{
import flash.display.Sprite;
public class Thing extends Sprite
{
// Cloneable properties.
private var _cloneable:Array = ["x","y","val1","val2"];
// Properties.
public var val1:uint = 10;
public var val2:String = "ten";
/**
* Returns a new Thing with the same properties.
*/
public function clone():Thing
{
var t:Thing = new Thing();
for each(var i:String in _cloneable)
{
t[i] = this[i];
}
return t;
}
}
}
Все, что вам нужно сделать, это добавить свойства, которые вы хотите иметь клонируемые, к _cloneable
Пример использования:
var thing:Thing = new Thing();
thing.x = 15;
thing.y = 10;
thing.val1 = 25;
thing.val2 = "twentyfive";
// Clone initial Thing.
var thing2:Thing = thing.clone();
trace(thing2.x, thing2.y, thing2.val1, thing2.val2); // 15 10 25 twentyfive