Помогите разобраться в данной форме записи:

Код AS3:
private function adder (...rest):void
{
for each (var obj: Object in rest)
{
var btn: MovieClip = new (obj.def)();
var _x: int= new (obj._x)();
btn.x = btn._x;
var _y: int= new (obj._y)();
btn.y = btn._y;
if ('animate' in obj)//Анимировать появление?
{
btn.scaleX = 0;
btn.scaleY = 0;
Actuate.tween(btn, 3, { scaleX: 1, scaleY:1 });
}
addChild(btn);
}
}
Вызываю функцию следующим образом:

Код AS3:
adder( { def: Header, _x: stage.stageWidth / 2, _y:stage.stageHeight / 8.3, animate:true } );
Переменная объявлена:

Код AS3:
private var Head: Header= new Header;
Все переменные, передаваемые в функцию различных классов, но по-сути MovieClip.
Actuate - вложенная библиотека, соответственно.
Ошибка выдаётся на этой строке var _x: int= new (obj._x)();
Error #1007: Попытка реализации в объекте, который не является конструктором.
P.S.: Код подкинули, в терминах плохо разбираюсь. Очень нужна функция, для множества переменных.