Botones idioma en flash

Me he bajado un template de falsh y lo he modificador pero tengo una duda a la hora de poner unos botones para cambiar de idioma.
La estructura del flash es:
4 botones con la acción siguiente:
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.flashmo_click_area.visible = true;
        mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OVER, btn_over );
        mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OUT, btn_out );
        mc.flashmo_click_area.addEventListener( MouseEvent.CLICK, btn_click );
    }
    var mc_selected = MovieClip( main_menu.getChildAt(no) );
    mc_selected.over = true;
    mc_selected.flashmo_click_area.visible = false;
    mc_selected.flashmo_click_area.removeEventListener( MouseEvent.ROLL_OVER, btn_over );
    mc_selected.flashmo_click_area.removeEventListener( MouseEvent.ROLL_OUT, btn_out );
    mc_selected.flashmo_click_area.removeEventListener( MouseEvent.CLICK, btn_click );
    page = no + 1;
    play();
}
que lo que hace es cargar el texto y algunas images en un movie clip (con la accion: flashmo_page1.load_xml("flashmo_197_page_1.xml");
Tengo los archivos xml en cada idioma pero no se como hacer que el botón me cargue el archivo correspondiente en cada movieclip
¿Cómo lo podría hacer?
Soy novato en esto de flash y creo que la información que te he mandado sera suficiente y el código el que te hce falta saber, pero si necesitas alguna información más, dímelo.
Respuesta
1
Al parecer la función que me pasaste es un pequeño paginador. Hace un recorrido de un XML y hace que puedas hacer un rollOver sobre los botones y puedas hacer click. Y luego mata los eventos. Es todo lo que hace la línea de código que me mandaste.
Si tu quieres saber dónde colocar tus archivos en español, tienes que encontrar el XML de español e insertarlo en el siguiente script:
flashmo_page1.load_xml("AQUÍ_VA_EL_NOMBRE_DE_TU_XML_EN_ESPAÑOL.xml");
Eso sería todo. Eso debe funcionar.
Me he dado cuenta de que tengo que cambiar más cosas en la página así que pretendo hacer un .swf para cada idioma y poder cargar el index.html correspondiente con un botón.
Aquí me viene ahora el problema (estoy usando flash cs5):
Hago un botón en la biblioteca creando un símbolo del tipo: botón y coloco una imagen en los cuatro estados.
Y el botón me aparece con su símbolo en la biblioteca.
Ahora marco, en la linea de tiempo, la capa donde lo quiero poner y lo arrastro desde la biblioteca.
Por ultimo, quiero asignarle una acción pero si lo marco y clic derecho, en acciones me pone que no se puede en action script 3.0 situar código directamente en los objetos.
¿Dónde estoy fallando? Me imagino que la pregunta es bastante fácil para alguien que controle de flash pero yo soy novato.
Gracias de antemano
miguel
De hecho no estás fallando tu. La sintaxis de AS2 a AS3 cambia bastante.
Antes en AS2 lo que tenías que hacer era darle click derecho al botón y colocar la siguiente acción:
____________________________________________________
on(release) {
trace("cualquier cosa");
};
_____________________________________________________
Ahora, para desgracia nuestra ya no es así de fácil. Lo que tienes que hacer ahora para crear un botón es primero creamos una función, que ejecutará la acción que le ordenemos a nuestro botón (en tu caso cargar un URL externo para integrar el flash), aquí pongo un ejemplo con un trace.
_________________________________________
function miAccion (e:Event) : Void
{
trace("ejecutando una acción");
}
__________________________________________
A diferencia del AS2, aquí si necesitas declarar entre paréntesis de qué se trata tu función, en este caso es un evento que se va a disparar al hacer click. Y no va a regresar nada. (En AS2 no tenías que especificarlo, el software lo interpretaba.. pero bueno! Dicen que es mejor así).
Una vez que tengamos la acción que vamos a realizar dentro de nuestra función, vamos a generar el evento de click. Antes en AS2 usábamos "onRelease" y concatenábamos todo con un punto, al igual que la función, así:
______________________________
btn.onRelease = function {accion}
______________________________
Ahora en AS3 tenemos que agregar a un addEventListener la función, y el evento del mouse para hacer click.
btn.addEventListener(MouseEvent.CLICK , abrir);
Así programas un botón. No sé bien que función remplaza al "loadMovie()" del AS2, me parece que se hace con un URLRequest("tusfw.swf");
Gracias, pero al final con tu código no me salia, pero con este código si que funciono.
boton_ES.addEventListener(MouseEvent.CLICK, mouseClick);
function mouseClick(e:MouseEvent) {
var url:String = "http://miescuela.webege.com/index.html";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, "_self");
}
catch (e:Error) {
// handle error here
}
}
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas