Tengo un problema con la creación de una variable dinámica en tiempo de ejecución. Es un juego flash de naipes.
Esto me muestra el panel salida:
"ReferenceError: Error #1056: No se puede crear la propiedad jugador2.carta1"
Bueno el código no es muy claro así que voy a tratar de explicarlo:
En primer lugar cree dos clases dentro del mismo directorio. 1- Jugador.as, la cual tiene una propiedad carta1, 2, 3. Las cuales guardan un tipo de dato Naipe. Esta última es la segunda clase, que extiende MC. El constructor Naipe recibe dos parámetros. 1-El número y 2-El palo o pinta( ej: CORAZON)
Lo que pretendo hacer es lo siguiente, lo cual funciona a la perfección:
Código ActionScript :
public function repartirMazo() { //asignar a variable jugador1 las cartas nº 1, 3 y 5 //asignar a variable jugador2 las cartas nº 2, 4 y 6 //Ej mazo[0]=[1, "TREBOL"] jugador2.carta1 = new Naipe(mazo[0][0],mazo[0][1]); jugador1.carta1 = new Naipe(mazo[1][0],mazo[1][1]); jugador2.carta2 = new Naipe(mazo[2][0],mazo[2][1]); jugador1.carta2 = new Naipe(mazo[3][0],mazo[3][1]); jugador2.carta3 = new Naipe(mazo[4][0],mazo[4][1]); jugador1.carta3 = new Naipe(mazo[5][0],mazo[5][1]); }
No obstante me resultó incomodo tantas líneas así que preferí hacer dos bucles para obtener el mismo resultado. He chequeado las operaciones aritméticas y están correctas.
Código ActionScript :
public function repartirMazo() { for (var i:uint = 0; i <= 4; i += 2) { for (var j:uint = 2; j >= 1; j--) { // AQUÍ ESTÁ EL CONFLICTO this[ "jugador" + j + ".carta" + ((0.5 * i) + 1) ] = new Naipe( mazo[i+((-1*j)+2)][0], mazo[i+((-1*j)+2)][1] ); } } }
Bueno en sí no estoy creando una variable, la variable ya existe, así como también la propiedad carta1. Esta última no está definida al comienzo del bucle. Aquí el problema es con la asignación de un tipo de dato MovieClip en una variable de tipo Object.
Eso es todo espero que me puedan ayudar. Gracias