Имеем класс кнопки состоящий из 4 кадров, на каждом по картинке, где от того какой инстанс выбран на данный момент сохраняется перменная SELECTED.

Код AS3:
package classes
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
/**
* ...
* @author in4core
*/
public class MenuBtnMain extends MovieClip
{
public static var SELECTED:String = '';
public var NAME;
public function MenuBtnMain()
{
this.buttonMode = true;
this.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(e:MouseEvent):void
{
e.currentTarget._bg.gotoAndStop(2);
SELECTED = this.NAME;
}
public function setNameByFrame() {
switch(this.currentFrame) {
case 1:
NAME = 'box';
break;
case 2:
NAME = 'paket';
break;
case 3:
NAME = 'otk_1';
break;
case 4:
NAME = 'otk_2';
break;
}
}
}
Далее показываю только одну функцию из Main нужную нам
где от того какая кнопка выбрана на данный момент происходят действия с mainMC

Код AS3:
private function onClick(e:MouseEvent):void
{
mainMC = new BG2();
addChild(mainMC);
mainMC.x -= 12;
mainMC.y -= 35;
mainMC.setLocation(MenuBtnMain.SELECTED);
}
}
Ну и стоит показать сам mainMC соотв

Код AS3:
public function setLocation(loc:String):void {
var pat:Patterns = new Patterns();
addChild(pat);
pat.x = 20;
pat.y = 47;
switch(loc) {
case 'box':
pat.gotoAndStop(1);
break;
case 'paket':
pat.gotoAndStop(2);
break;
case 'otk_1':
pat.gotoAndStop(3);
break;
case 'otk_2':
pat.gotoAndStop(4);
break;
}
}
Данный пример конечно не раскрывает всю суть вопроса, но он более менее ее объясняет, сдесь конечно кадры кнопки равны кадрам pat , поэтому можно тупо сохранять номер кадра а не название, а вот если они не то что не равны, а даже не подчиняются мат законам, тогда вот такую конструкцию приходится делать полюбому, или нет?! Надеюсь так понятнее