Не тестировал, но должно работать.

Код:
function generator(url:String):Function {
return function () {
trace(url);
SWFAddress.setValue(url)
};
}
for (i in ppmn) {
buttonAttrib = ppmn[i].attributes;
_root.createEmptyMovieClip(buttonAttrib.id, _root.getNextHighestDepth());
// ---- второй способ
_root[buttonAttrib.id].url = buttonAttrib.url
//
//подготовка переменных с координатами для рисования квадрата
x1 = Number(buttonAttrib.x);
y1 = Number(buttonAttrib.y);
x2 = (Number(buttonAttrib.x)+Number(buttonAttrib.w));
y2 = (Number(buttonAttrib.y)+Number(buttonAttrib.h));
//Рисование квадрата
with (_root[buttonAttrib.id]) {
useHandCursor = true;
beginFill(buttonAttrib.x+10, buttonAttrib.y+10);
moveTo(x1, y1);
lineTo(x2, y1);
lineTo(x2, y2);
lineTo(x1, y2);
lineTo(x1, y1);
endFill();
}
//События
// ---- первый способ
_root[buttonAttrib.id].onRelease = generator(buttonAttrib.url)
// ---- второй способ
_root[buttonAttrib.id].onRollOver = function() {
SWFAddress.setStatus(this.url);
};
//
_root[buttonAttrib.id].onRollOut = function() {
SWFAddress.resetStatus();
};
_root.error_txt.text = _root.error_txt.text+buttonAttrib.x;
}
PS: Чтобы не было видно кнопок, но они нажимались: _root[buttonAttrib.id]._alpha = 0