Все правильно, ты просто не туда грузиш.
Если ты вешаешь код на кнопку

Код:
on (press) {
loadMovie("2.swf",this);
}
то this - это не кнопка, а ее родитель. Туда и грузится.
Делай так: кнопку на сцену. Назови ее в свойствах "my_btn". Код в первом кадре сцены

Код:
var mc = createEmptyMovieClip("box", this.getNextHighestDepth());
my_btn.onRelease = function(){
mc.loadMovie("2.swf");
}
Ну или помести клип на сцену, назови его "box" в свойствах и обращайся

Код:
my_btn.onRelease = function(){
_root["box"].loadMovie("2.swf");
}
on(event) - порочная практика.
onPress - нажатие, onRelease - честный щелчок.
А вообще используй movieClipLoader, не ошибешься.