Tabbed nav - trouble removing "tab" sprites

I’m building a little widget that has 3-tab navigation. I’ve written the following classes (small subset, anyway) to control everything:
[LIST]
[]Shell.as - the document class, responds to navigation class and loads tab content classes as needed
[
]Navigation.as - extends Sprite; receives parameters for tab colors/labels from Shell.as (unrelated XML call for configuration) and generates 3 tabs using a NavTab.as (extends Sprite) class for the button graphics; dispatches CLICK event back to Shell.as for content load handling
[*]GameDayTab.as / TeamInfoTab.as / NewsTab.as - all extend Sprite; each loads various XML feeds and graphics depending on function to render the “content” of each tab; instantiated from Shell.as and, ideally, removed by Shell.as when Shell.as gets calls from Navigation.as
[/LIST]

This is the event I’m dispatching from Navigation.as back to Shell.as to handle tab content loading:

public function onMouseClick(e:Event):void
{
	trace(":: onClick() ::");
	currentTab = e.currentTarget.name;
	trace(":: onClick() : currentTab : " + currentTab + " ::");
	dispatchEvent(new Event(NAV_CLICK, true));
}

Shell.as receives this event and processes it with this rather pair of functions:

private function onNavClick(e:Event):void
{
	trace(":: onNavClick() ::");
	
	loadTab(_navigation.currentTab);
}
		
// load tab
private function loadTab(tab_type:String):void
{
	trace(":: loadTab() ::");
			
	switch(tab_type)
	{
		case "nav_tab_0" :
		_gameDayTab = new GameDayTab(_configData.game_day_tab_xml, _cssStyles);
		addChild(_gameDayTab);
		break;
		case "nav_tab_1" :
		_teamInfoTab = new TeamInfoTab(_configData.team_info_tab_xml, _cssStyles);
		addChild(_teamInfoTab);
		break;
		case "nav_tab_2" :
		_newsTab = new NewsTab(_configData.news_tab_xml, _cssStyles);
		addChild(_newsTab);
		break;
	}
}

I need to be a little more elaborate with this code, I know, but i guess what I’m trying to figure out is how to REMOVE a tab content class from the stage. I tried removeChild(), which didn’t work – I understand that’s only removing the reference to that object now, and I really also need to clean up what each tab content instance loads (BulkLoader, other sprites, textfields, etc.).

Not ideal to reload the entire tab content instance each time, but I just wanna make sure that I know the basics of what I’m trying to achieve.

Any assistance is greatly appreciated.

Regards,
IronChefMorimoto

BUMP

OK – I’m thinking that I can just instantiate each tab content class once and make it visible/not-visible since each of the sub-classes extend Sprite. That SHOULD be an inherited property from the Sprite class, yes?

Only problem with this approach means that the content in each tab sub-class will remain static to the time it was first loaded. Which brings me back to my original question – what’s the best way to use removeChild for one of these tab sub-classes? Esp. since, in the case of GameDayTab.as, the BulkLoader instance is still floating around if I try and instantiate and load a GameDayTab.as instance again.

Thanks,
IronChefMorimoto

No responses, and I’ve asked similar questions in other threads (not directly related to this one) today. I guess my final question is – HOW exactly do I remove a child from the document class level (e.g. GameDayTab.as, which contains a custom XMLParser.as instance and an instance of BulkLoader)?

I tried removeChild on an instance of my GameDayTab.as class, and I got error messages from the BulkLoader custom class. That the same instance had already been instantiated.

If you even just have a link to a step-by-step procedure for properly and completely removing a child from a display list, that’d be cool too.

Thanks,
IronChefMorimoto

BUMP

Bueller? Last call?

Thanks,
IronChefMorimoto