He estado probando un código típico que te carga unos botones y cada uno de ellos te carga una página con un contenido. Hasta aquí todo bien. El problema me ha surgido cuando dentro de una página he insertado el código otra vez, funciona bien ( me carga los nuevos botones y el contenido),pero cuando le doy a un botón principal, me carga bien la página con el contenido pero siguen manteniéndose los botones del contenido de la página anterior.
Como puedo hacerlo para hacerlos desaparecer, ya que con removeChildAt no me funciona.
Os pongo el código inicial:
Código ActionScript :
fm_button.visible = false;
var menu_label:Array = new Array("botón1","botón2,"botón3");
var total:Number = menu_label.length;
var i:Number = 0;
var page:Number;
var main_menu1:MovieClip = new MovieClip();
stage.addChild(main_menu1);
for( i = 0; i < total; i++ )
{
var btn = new flashmo_button();
btn.name = "btn" + i;
btn.y = fm_button.y + (30) * i;
btn.x = fm_button.x;
btn.item_no = i;
btn.addEventListener( Event.ENTER_FRAME, btn_enter );
var each_substring:Array = menu_label[i].split("|");
btn.flashmo_button_label.fm_label.text = each_substring[0];
btn.item_url = each_substring[1];
main_menu2.addChild(btn);
}
function btn_over(e:MouseEvent):void
{
e.target.over = true;
}
function btn_out(e:MouseEvent):void
{
e.target.over = false;
}
function btn_click(e:MouseEvent):void
{
var mc = e.target.parent;
if( mc.item_url != undefined )
navigateToURL( new URLRequest( mc.item_url ), "_parent" );
else
change_page(mc.item_no);
}
function btn_enter(e:Event):void
{
var mc = e.target;
if( mc.over == true )
mc.nextFrame();
else
mc.prevFrame();
}
function change_page(no:Number):void
{
for( var i:Number = 0; i < main_menu1.numChildren; i++ )
{
var mc = MovieClip( main_menu1.getChildAt(i) );
trace(mc.flashmo_button_label.fm_label.text);
mc.over = false;
mc.flashmo_click_area.visible = true;
mc.addEventListener( MouseEvent.ROLL_OVER, btn_over );
mc.addEventListener( MouseEvent.ROLL_OUT, btn_out );
mc.addEventListener( MouseEvent.CLICK, btn_click );
}
var mc_selected = MovieClip( main_menu1.getChildAt(no) );
trace(mc_selected.flashmo_button_label.fm_label.text);
mc_selected.over = true;
mc_selected.flashmo_click_area.visible = false;
mc_selected.removeEventListener( MouseEvent.ROLL_OVER, btn_over );
mc_selected.removeEventListener( MouseEvent.ROLL_OUT, btn_out );
mc_selected.removeEventListener( MouseEvent.CLICK, btn_click );
page = no + 1;
play();
}
change_page(0); // default page on load
El código de la página donde tengo el problema es el mismo, sólo que cambiando los nombres de los botones y el main_menu1, ahora es el main_menu2.
Muchas gracias de antemano.
