Понятно. Вы передаете ссылку на объект, а не на переменную. Поэтому у вас и получается undefined.

Код AS1/AS2:
var butt:MovieClip = this;
function attachButt (path:MovieClip, variable:String, name:String):Void {
path[variable] = this.attachMovie (name, name + "1", 1);
}
attachButt (this, "butt", "button1");
trace (butt);
Но такой способ плохой. Используйте массив для хранения ссылок на получаемые клипы.