Попробуйте это:
public class MyClass extends MovieClip
{
public function MyClass()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var myMc:MovieClip = stage.getChildByName("my_mc") as MovieClip;
// var myMc:MovieClip = parent.getChildByName("my_mc") as MovieClip;
myMc.addEventListener(MouseEvent.CLICK, onMyMcClick)
}// end function
private function onMyMcClick(e:MouseEvent)
{
trace("clicked");
}// end function
}// end class
Если это не сработает (что, я думаю, не сработает), то потому, что ваш my_mc
экранный объект не является дочерним элементом рабочей области, но является дочерним для экземпляра MainTimeline
. Если это так, то просто закомментируйте следующее утверждение в приведенном выше коде:
var myMc:MovieClip = stage.getChildByName("my_mc") as MovieClip;
и раскомментируйте следующий код в приведенном выше коде:
// var myMc:MovieClip = parent.getChildByName("my_mc") as MovieClip;
Если мое предположение верно, экранные объекты my_mc
и myClass
имеют одного и того же родителя.