Если экономить память, то вполне можно обойтись без классов:
вместо

Код:
mc.onRelease = function () {
trace (2 + this.a);
};
написать:

Код:
//блок задания метода в цикле
mc.onRelease = f_1
//внешняя функция вне тела цикла
function f_1 () {
trace (2 + this.a);
};
Что касается классов, то одна копия существует лишь при занесении метода в прототип класса, а если метод в конструкторе класса, то вовсе нет.