Код для флешки, создает инстанс кнопки вашего класса и текстовое поле, куда нужно выводить инфу о нажатой кнопке.

Код:
var _l1:MyBtn = new MyBtn("cust_btn", this);
_root.createTextField("state_txt", 100, 0, 0, 100, 20);
with(state_txt){
text = "status";
}
Код для MyBtn.as (поместить в ту же папку с флешкой). Класс с уже прописанной функцией онРелиз.

Код:
class MyBtn extends MovieClip {
public var ID:String = ""; //как будет называться наш инстанс
public var innerMC:MovieClip; //куда его ставить
private var inner_MC:MovieClip; //внутренняя переменная которая и содержит всю графику нашей "кнопки"
function MyBtn(ID:String, innerMC:MovieClip) {
inner_MC = innerMC.createEmptyMovieClip("clp"+ID, this.getNextHighestDepth());
inner_MC.beginFill(0x00ff00, 100); //пример програмного рисования - создания кнопки
inner_MC.moveTo(20, 20);
inner_MC.lineTo(20, 120);
inner_MC.lineTo(120, 120);
inner_MC.lineTo(120, 20);
inner_MC.lineTo(20, 20);
inner_MC.endFill();
inner_MC.ID = ID;
inner_MC.attachMovie(ID, ID+"_mc", this.getNextHighestDepth(), {_x:40, _y:40});//пример работы аттача
inner_MC.onRelease = function() {//собсна, нужная ф-ция
_root.state_txt.text = this.ID;
};
}
public function getID():String {
return ID;
}
public function setID(arg:String):Void {
ID = arg;
}
}
* чтобы все работало нужно в библиотеке создать клип с идентификатором экспорта "cust_btn".
По сути делает то же самое что и аттачМуви, просто сразу же добавляет функцию в онРелиз...