Estoy haciendo un menú por pestañas. La estructura de los componentes del menú es la siguiente:
-MovieClip global (TabMenu)
En su interior contiene:
-Un MovieClip que almacenará el contenido [tabMenuContent]
-Tantos MovieClips como pestañas tengo [tab_0....tab_4]
-Tantos Moviclips como pestañas tengo que contendrá una imagen asociada a la sección de la imagen[sectionImage_0...sectionImage_4]
La idea es que cuando una sección/pestaña está activa se vea pestaña [tab_] e imagen [sectionImage_] y la sección inactiva solo sea visible su imagen [sectionImage_]
Inicialmente la pestaña activa es la primera [tab_0]
adjunto el código:
Código ActionScript :
public function TabMenuManager(_sections:Array,_tabMenuHolder:MovieClip)
{
numSections = _sections.length;
//Default active section
activeSection = 0;
//MovieClip which contains tabMenu Components inside Layout
tabMenuHolder = _tabMenuHolder;
sectionsInfo = new Array(numSections);
initTabs(0);
init();
}
private function init():void {
var sectionImage:MovieClip;
for (var i:int = 0; i < sectionsInfo.length; i++) {
sectionImage = new MovieClip();
sectionImage = MovieClip(tabMenuHolder.getChildByName("sectionImage_" + i.toString()));
sectionImage.addEventListener(MouseEvent.CLICK, onReleaseTab);
...
}//end 'for'
}
private function initTabs(_activeSection:int):void {
for (var i:int = 0; i < numSections; i++) {
if (_activeSection == i) {
activeTab(_activeSection);
activeSection = _activeSection;
}else disableTab(i);
}
}
private function activeTab(_activeSection:int): void {
var currentTab:MovieClip = new MovieClip();
var imageSection:MovieClip = new MovieClip();
//Show Tab
currentTab = MovieClip(tabMenuHolder.getChildByName("tab_" + _activeSection.toString()));
currentTab.visible = true;
//Show only the section
imageSection = MovieClip(tabMenuHolder.getChildByName("sectionImage_" + _activeSection.toString()));
imageSection.visible = true;
}
private function disableTab(_disableSection:int):void {
var currentTab:MovieClip = new MovieClip();
var imageSection:MovieClip = new MovieClip();
//Hide Tab
currentTab = MovieClip(tabMenuHolder.getChildByName("tab_" + _disableSection.toString()));
currentTab.visible = false;
//Show only the section
imageSection = MovieClip(tabMenuHolder.getChildByName("sectionImage_" + _disableSection.toString()));
imageSection.visible = true;
}
initTabs() funciona perfectamente pero el caso es que no hace caso a los listeners. Si quito el iniTabs del constructor si funcionan los listener cuando pulso sobre una pestaña pero una sola vez. Si pulso sobre una segunda pestaña no va....
Gracias!
