а почему кстати используешь кастомный класс для контейнеров тутора? как я понимаю это обычные displayObjectContainer, например с кнопками. тогда и связанность меньше.
И не лучше ли хранить весь путь от стейжа, например stage.win1.panel2.btn1, чем пытаться все это кодировать в id кнопки, которая может и не знать где лежит, и как себя отличить от остальных. да и поиск будет быстрее. надо только дать имена контейнерам

Код AS3:
static public function targetByPath(child:DisplayObjectContainer,path:Array):DisplayObject {
var childName:String = path.shift();
if (!childName) return child;
return findByPath(child.getChildByName(childName),path);
}
static public function pathByTarget(target:DisplayObject):Array {
var path:Array = [];
while (target!=stage) {
path.unshift(target.name)
target = target.parent;
}
return path.join('.');
}