Comunidad de diseño web y desarrollo en internet online

Problema con código AS3 para poder navegar por diseño web

Citar            
MensajeEscrito el 03 Sep 2010 10:22 pm
Bueno a ver si soy capaz de explicarme porque soy neonato en esto, primero que nada gracias por este foro .

Bien, el caso es que normalmente usaba AS2 para el código de navegación en un diseño web, pero debido a que el AS3 me da más posibilidades, pues inserté un mp3 player hecho con AS3, a través de un loader y claro es incompatible com era de esperar, así que llevo un par de días complicándome la vida con el AS3 sin saber nada, gracias a algunos tutoriales y he conseguido hacer la navegación básica, pero el código es muy extenso.

Bien el inicio se compone de dos botones, uno para elegir la página en español y otro en inglés, cuando entras en español
tienes 4 botones (inicio/musica/traducir{este boton pasa a su análogo en inglés}/diseño/sobre mí), pues bien el código hasta ahí funciona muy bien, aunque creo que lo estoy haciendo mal porque es muy extenso, o hay una manera más corta de conseguir lo mismo.

El asunto se complica cuando dentro de los botones principales, por ejemplo: música pues hay 3 botones más que son (producciones/servicios/contacto) pues al ir a alguno de estos fotogramas como que se pierde y como que cada fotograma
tiene que tener su propio frame de acciones ¿qué estoy haciendo mal?, seguro muchas cosas, ¿qué me está faltando?, me he liao de tal manera que ya no se como seguir, he pensado incluso empezar de nuevo.


//ESTE CODIGO ME FUNCIONA PERFECTAMENTE Y ES EL DE INICIO ÉSTA EN EL 1º FOTOGRAMA

// BOTÓN ESPAÑOL

sp_btn.addEventListener(MouseEvent.CLICK, clicSp);

function clicSp(event:MouseEvent):void
{
gotoAndStop("musica");
}

//BOTÓN INGLÉS

uk_btn.addEventListener(MouseEvent.CLICK, clicUk);

function clicUk(event:MouseEvent):void
{
gotoAndStop("music");
}

//ÉSTE CÓDIGO TAMBIÉN FUNCIONA BIEN, FOTOGRAMA 8

//inicio

inicio_btn.addEventListener(MouseEvent.CLICK, comienzo);

function comienzo(event:MouseEvent):void
{
gotoAndStop("intro");
}


//musica

musica_btn.addEventListener(MouseEvent.CLICK, musica);

function musica(event:MouseEvent):void
{
gotoAndStop("musica");
}


//BOTÓN TRADUCTOR AL INGLÉS DESDE MUSICA

ukm_btn.addEventListener(MouseEvent.CLICK, traduciralingles);

function traduciralingles(event:MouseEvent):void
{
gotoAndStop("music");
}

//diseño

diseño_btn.addEventListener(MouseEvent.CLICK, diseño);

function diseño(event:MouseEvent):void
{
gotoAndStop("diseño");
}

//bio

bio_btn.addEventListener(MouseEvent.CLICK, bio);

function bio(event:MouseEvent):void
{
gotoAndStop("sobre");
}
// BARRA LATERAL IZQUIERDA DESDE MUSICA

//PRODUCCIONES

a_btn.addEventListener(MouseEvent.CLICK, promocion);

function promocion(event:MouseEvent):void
{
gotoAndStop("pro");
}

//SERVICIOS

b_btn.addEventListener(MouseEvent.CLICK, servicio);

function servicio(event:MouseEvent):void
{
gotoAndStop("ser");
}


//CONTACTO

c_btn.addEventListener(MouseEvent.CLICK, contacto);

function contacto(event:MouseEvent):void
{
gotoAndStop("cont");
}

//HASTA AQUÍ EL DE ESPAÑOL

Bueno para no poner muchas más líneas el de inglés es igual pero cambiando sus botones y funciones claro, todo se complica cuando uso los subbotones de cada sección por llamarlo de alguna manera, ¿no es posible hacer todo el código en un solo fotograma?, pues tengo que usar otro fotograma independiente para las subsecciones.

Bueno espero poder recibir algo de ayuda y agradezco la atención y la paciencia para atender éste tema, Gracias.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 04 Sep 2010 01:16 am
he conseguido que todo funcione, ahora sigo pensando que tiene que haber una manera de que el código no sea tan extenso, por eso os escribo a ver si alguién con más conocimiento que yo puede darme alguna idea, gracias otra vez por vuestro tiempo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 04 Sep 2010 05:46 am
BuenAS:

Una forma compacta de hacerlo (si lo que buscas es ahorrar; aunque muchas veces lo que interesa es que el código sea "comprensible"). Llama a las etiquetas de las líneas de tiempo IGUAL que los botones, y escribes:

Código ActionScript :

boton_1.addEventListener(MouseEvent.CLICK, clickHandler);
boton_2.addEventListener(MouseEvent.CLICK, clickHandler);
...
boton_10.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void
{
   gotoAndStop(event.currentTarget.name)
}


Si no quireres hacerlo tan "compacto", otra opción es utilizar switch:

Código ActionScript :

boton_1.addEventListener(MouseEvent.CLICK, clickHandler);
boton_2.addEventListener(MouseEvent.CLICK, clickHandler);
...
boton_10.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void
{
   switch(event.currentTarget.name){
      case "boton_1":
         gotoAndStop("etiqueta_1");
         break;
...
      case "boton_10":
         gotoAndStop("etiqueta_10");
         break;
   }
}


Esta segunda opción es casi más conveniente que la primera ya que es menos criptica :) y permite meter algo de código en cada caso. Imagina que no sólo quieres hacer un gotoAndStop; sino que además detienes los sonidos, ocultas un movieClip, etc. Todo esto lo podrías meter dentro de cada case/break del switch.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 Sep 2010 08:50 am
Gracias por tu ayuda, tu info me ayudará a investigar con el código además me haz enseñado algo nuevo. Saludos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 12 Nov 2010 01:35 am
Lukanicos,


muchas gracias, por la explicacion, ademas de ser clara y que sirve.
Siempre habia trabajado con as2 porque el as3 me parecia lleno de perendengues, pero ahora que esta el uso de huesos y el de (semi) 3d pues bueno toco o toco as3, y esto me sirvio pero un reeeeesto, gracias, ojala pudiera contactarme contigo para aprender algunas cosas mas, pero bueno, esto ya es mucho.
Gracias!!!!! :D :D :lol:

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 12 Nov 2010 09:37 am
Más compacto sería así:

Código ActionScript :

var numBots:Number = 10; 
var fotogName:Array = new Array ("musica","music"...) 
 
function botonera():void{ 
      for (var i:int = 0; i < numBots; i++){ 
            this["boton_"+i].pos = i; 
            this["boton_"+i].addEventListener(MouseEvent.CLICK, clickHandler);  
      } 
} 
  
function clickHandler(event:MouseEvent):void {  
   var num:int = event.currentTarget.pos; 
      gotoAndStop(fotogName[num])  
}  
 
botonera();

Por juanfher

74 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.