RemoveAllChildren?

I have a class that creates a “popup message” on instances when the user hovers them. My problem is that if the user hovers too fast onto another instance, the previous one won’t be able to fade out in time, thus not removing those objects. To make sure there’s never more than one “popup” at the screen I thought I should include some sort of “RemoveAllChildren” function as the hover function initializes on an instance. For some reason I can’t seem to find the dynamic objects on stage:

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    import fl.transitions.TweenEvent;

    public class Feature extends MovieClip
    {
        public var pop:Popup = new Popup();
        public var msg:TextField = new TextField();
        private var a:Tween;
        private var b:Tween;
        private var c:Tween;
        private var d:Tween;
        private var sequence:String = "one";
        
        function Feature()
        {
            this.buttonMode = true;
            this.addEventListener(MouseEvent.MOUSE_OVER, showFeature);
            this.addEventListener(MouseEvent.MOUSE_OUT, hideFeature);
        }
        
        public function removeAllChildren():void
        {
            while (root.numChildren)
              {
                root.removeChildAt(3);
                root.removeChildAt(4);
            }
        }
        
        public function showFeature(event:MouseEvent):void
        {
            if (sequence == "one")
            {
                if (pop != null)
                {
                     removeAllChildren();
                }
                sequence = "two";
                this.play();
                addChild(pop);
                addChild(msg);
                msg.alpha = 0;
                msg.y = this.y - 275;
                a = new Tween(pop, "alpha", None.easeNone, 0, 1, 15, false);
                b = new Tween(pop, "y", Strong.easeOut, 0, -85, 15, false);
                c = new Tween(pop, "x", Strong.easeOut, 15, 15, 1, false);
                d = new Tween(msg, "x", Strong.easeOut, 25, 25, 1, false);
                b.addEventListener(TweenEvent.MOTION_FINISH, showMessage);
            }
            
            function showMessage(event:TweenEvent):void
            {
                c = new Tween(msg, "alpha", None.easeNone, 0, 1, 15, false);
                sequence = "three";
            }
        }
        
        public function hideFeature(event:MouseEvent):void
        {
            if (sequence == "three")
            {
                sequence = "two";
                this.play();
                a = new Tween(msg, "alpha", None.easeNone, 1, 0, 15, false);
                b = new Tween(pop, "alpha", None.easeNone, 1, 0, 15, false);
                b.addEventListener(TweenEvent.MOTION_FINISH, removeInstance);
                
                function removeInstance(event:TweenEvent):void
                {
                    removeChild(pop);
                    removeChild(msg); // These two work but they don't necessarily apply if user navigates too quickly
                    sequence = "one";
                }
            }
        }
    }
}

What would be the best approach for this?