Такая ситуация в некотором классе имеется следующий код

Код AS3:
for each(var child:Object in __dataProvider)
{
var element:DoorPatternElement = new DoorPatternElement();
element.pattern = child["Pattern"];
this.addChild(element);
element.addEventListener(MouseEvent.CLICK, __clickElement);
element.y = __Y;
__Y+= element.height + 10;
__elements.push(element);
}
public static var CHANGE_PATTERN:String = "CHANGE_PATTERN";
private function __clickElement(e:MouseEvent):void
{
var element:DoorPatternElement = DoorPatternElement(e.currentTarget);
this.dispatchEvent(new EventObject(CHANGE_PATTERN, element.pattern));
trace(element.pattern)
}
В другом классе, где находится слушатель события есть следующее

Код AS3:
//value и info это части переменной element.pattern
public function pattern(value:Array, info:Array):void
{
__infoArray = info;
__adminArray = value
//Модификация переменных
}
Проблема следующая, если событие мы послушали и модифицировали переменные, то element.pattern содержит эти изменения, а должен оставаться прежним, каким был изначально. Я так понимаю что __infoArray и __adminArray становятся ссылками на element.pattern, но как этого избежать?