I am puzzled with an aspect on external classes.

I have a class that supposed to be a distributable one through a SWC module. Well, this class is a simple popup message window (embedded in the SWC), that will be instantiated in the main stage in the moment the class be instantiated, more or less like this:

The example class (I have shorten it to what interests here):

Code:
class MessageWin extends MovieClip
{
    public function MessageWin()
    {
        _level0.attachMovie("____WINDOW","____WINDOW",_level0.getNextHighestDepth());
    }

    static private function hideWindow()
    {
        _level0.____WINDOW._visible = false;
    }

}
And its instantiation:

Code:
var MyMessage:MessageWin = new MessageWin("");
Finally, the message window have a "CLOSE" button. My problem is that the code above simply doesnt work, and it is easy to understand why. In the "CLOSE" button of the window, I have:

Code:
on(release) {
    hideWindow(); }
Obviously the hideWindow method won't be found by Flash because the message window is in a different scope from the MyMessage class. And this is the problem. The only turnaround I found for this problem was to modify the class this way:

Code:
class MessageWin extends MovieClip
{
    public function MessageWin(classname:String)
    {
        _level0.____CLASSNAME = classname;
        _level0.attachMovie("____WINDOW","____WINDOW",_level0.getNextHighestDepth());
    }

    public function hideWindow()
    {
        _level0.____WINDOW._visible = false;
    }

}
And in the "CLOSE" button, change it for:

Code:
on(release) {
    _level0[_level0.____CLASSNAME].hideWindow(); }
Finally, I need to change the class instanstiation to:

Code:
var MyMessage:MessageWin = new MessageWin("MyMessage");
However, although it works, it causes me two problems:

1) I am obligated to explicit the class instance name and store it in a public var
2) I am obligated to expose my hideWindow method turning it into a public method

Please, what am I missing here? I mean, how to access class methods from within embedded assets without to make those methods public? I think that maybe I should delegate it, but I am not seeing how... Please advice!