Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2009, 12:10
ErXam
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 9 años, 10 meses
Puntos: 0
Problemilla con referencia a variables

Hola, estoy realizando una aplicacion en flash, una especie de grafico que muestra acordes de guitarra. Expongo mi problema a ver si alguien sabe como solucionarlo.
Tengo definida la funcion siguiente para poder luego crear nuevos acordes con facilidad.

_global.acorde = function (nombre, numnotas, cuerda1, traste1, cuerda2, traste2, cuerda3, traste3, cuerda4, traste4, cuerda5, traste5, cuerda6, traste6)
{
this.nombre = nombre;
this.numnotas = numnotas;
this.cuerda1 = cuerda1;
this.traste1 = traste1;
this.cuerda2 = cuerda2;
this.traste2 = traste2;
this.cuerda3 = cuerda3;
this.traste3 = traste3;
this.cuerda4 = cuerda4;
this.traste4 = traste4;
this.cuerda5 = cuerda5;
this.traste5 = traste5;
this.cuerda6 = cuerda6;
this.traste6 = traste6;
};

Con lo cual ahora ya puedo definir los acordes de la forma, por ejemplo:

DoMayor1 = new acorde("nombredelacorde", 4, 2, 1, 3, 0, 4, 2, 5, 3, 0, 0, 0, 0);

para luego usar otra funcion "DIBUJA" de la forma DIBUJA(DoMayor1), a esta funcion le entra un acorde y dibuja en el grafico el acorde.

El problema es el siguiente:
He definido muchos acordes para tener una "biblioteca de acordes" y he insertado varios componentes ComboBox para que el usuario pueda decidir que acorde quiere ver, llega un momento en el cual obtengo el valor de loscomponetes, los concateno y obtengo una variable STRING por ejemplo si el usuario a elegido DO MAYOR POSICION1 mi variable queda:
variable = "DoMayor1" y ahora quiero usar la funcion DIBUJAR(); para el acorde de la biblioteca DoMayor, pero quiero saber si puedo ahorrarme los ifs puesto que tengo una variable con el nombre del acorde pero como es un string obviamente no lo dibuja puesto que a la funcion dibujar le debe entrar una variable de tipo "acorde", y le entra el string, en resumen, queria saber si hay alguna forma de teniendo:

DoMayor1 = new acorde (...........); //El acorde definido
variable = "DoMayor1";

pueda usar DIBUJAR(variable); y que de alguna forma equivalga a DIBUJAR(DoMayor1);

No se si se habra entendido correctamente, a ver si alguien sabe como hacerlo.
Un saludo y gracias!!

Última edición por ErXam; 11/02/2009 a las 21:43