Que hay mal en este código action script 3

Tengo un problema que arrastro varios días y no doy con el problema.
He descargado una plantilla de flash en action script 3, y en una de las página quiero poner dentro de un clip de película un menu que esta hecho en as3 ..
El problema es que al hacerlo este menu me queda fijo y sale en todas la páginas. No se como indicarle que solo ese menu salga en esa página.
Este es el código que genera los botones que estaría dentro del clip de película.
Hola_button seria el clip donde se hacen los botones para el menu de botones
y poemas_mc es el nombre de instancia del movie clip donde pongo el menu de botones.
Si lo dejo como esta en estos momentos me da un error y me dice:
TypeError: Error #1010: Un término no está definido y no tiene propiedades.
refiriendose a poemas_mc....
No se como solucionarlo si me puedes ayudar te lo agradecería
hola_button.poemas_mc.visible = true; 
var menu_label:Array = new Array("Primeros Poemas (1927-1929)", "Solitude, Optional april (1929-1937)", "Para complementar1", "Sera sera", "Para los olivos", "Siempre seco", "Tarde de verano"); 
var total:Number = menu_label.length; 
var i:Number = 0; 
var page:Number; 
var main_menu:MovieClip = new MovieClip(); 
stage.addChild(main_menu); 
for( i = 0; i < total; i++ ) 

   var btn = new poema_button(); 
   btn.name = "btn" + i; 
   btn.x = hola_button.poemas_mc.x; 
   btn.y = hola_button.poemas_mc.y + 80 * i; 
   btn.item_no = i; 
   btn.addEventListener( Event.ENTER_FRAME, btn_enter ); 
   var each_substring:Array = menu_label.split("|");   
   btn.poema_button_label.fm_label.text = each_substring[0];    
   btn.item_url = each_substring[1]; 
   main_menu.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_menu.numChildren; i++ ) 
   { 
      var mc = MovieClip( main_menu.getChildAt(i) ); 
      mc.over = false; 
      mc.poema_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_menu.getChildAt(no) ); 
      mc_selected.over = true; 
      mc_selected.poema_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);
2

2 respuestas

Respuesta
1
en primer lugar quiero decirte que  AS3 no tengo bien explorado, pero no esta lejos del AS2, asi que veo que tu creas los movie clips mediante la linea
var main_menu:MovieClip = new MovieClip();
Si quieres remover el menu o los movie clips, existe un comando como removeMovie(); en AS2, entonces busca algo parecido en AS3.
Y cierra la creación y la eliminación de movieclips (el menu) dentro de las funciones que ejecutas para aparecer o desaparecer el menu
Respuesta

Lo primero que encontré malo fue tu stage. AddChild(main_menu) eso esta bien escrito pero mal colocado, lo tienes que poner abajo del main_menu. AddChild(btn). Nota: ¿Tu main_menu es una imagen?, haré de cuenta que si, por lo que si lo es lo tuviste que haber importado y después almacenarlo en una variable(busca en google como importar y usarlo en la clase principal) segundo tus 2 for()

{} el primero lo tienes haci for(i = o;'i<total;i++) eso va haci for(var i = 0; i<total;i++) pusiste una o en vez de un 0 y el segundo tiene el mismo error, tiene una o(o de oso) en vez de un 0(cero)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas