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);
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 Respuestas
Respuesta de zador
1
Respuesta de victor lau