Remove itself once the mc hits certain frame

Hey there, I’m initiating my migration process from AS2 to AS3 (which many of you know it’s like trying to learn Chinese lol).
After reading A LOT of tutorials and, of course, pretty much everything that mister senocular wrote I finally got something going… Well until this pickle:
Remember how simple (yet apparently trashy it was to the code) this was?
AS2 Code:

function sendLogin(){
	fade = attachMovie(“fadeOut”,“fade”,1);
	fade.onEnterFrame = function(){
		if (this.currentframe == 10){
			gotoAndStop(“main”);
		}
		if (this.currentframe == 25){
			this.removeMovieClip();
		}
	}
}

I don’t know about you guys, but I’ve been hitting my head against the wall for days now trying to figure that out on AS3 . After a lot of search, it seems that I can’t remove (removeChild) a movieclip itself during an event of its own. In other words, this won’t work:
AS3 Code:


function login(event:MouseEvent):void{
	var fadeOut:FadeOut=new FadeOut();
	stage.addChild(fadeOut); // Set to stage so it can survive over the main timeline
	fadeOut.addEventListener(Event.ENTER_FRAME, fadeOver, false, 0, true);
}
 function fadeOver(event:Event):void{
	if (event.currentTarget.currentFrame == 10){
		gotoAndStop(“main”);
	}
	if (event.currentTarget.currentFrame == 25){
		// removeChild(fadeOut); Doesn’t work
		// parent.removeChild(fadeOut); Doesn’t work
		// removeChild(event.currentTarget); Doesn’t work
		// and so on…
	}
}

Not only that, but a bug also happens in the first 2 tries which are quite obvious thanks to the “not so great” AS3 debugger: “Can’t target something that doesn’t exist” caused by the fact that AS3 now think about the code as a whole rather then execute it piece by piece. AKA: fadeOut isn’t created yet because of the login function therefore “1120: Access of undefined property fadeOut.”.
Now my question is: Is there a solution for this? Or better yet: a better approach to what I’m trying to do?
Also I might probably have to find a way to add this as soon as I figure how to remove that clip:
removeEventListener(Event.ENTER_FRAME,fadeOver)
since I’ve read (and experienced) the fact that removeChild doesn’t actually remove the clip so the event listener will still be there (as someone said before in this forum)
Thanks in advance!