El caso es que necesito crear una aplicacioncilla en la que me aparezcan 22 fichas/cartas de manera aleatoria y que no se repitan para que luego el usuario las arrastre y juegue con ellas...
Bueno he creado los 22 movieclips y los he dado el nombre de instancia mc_1, mc_2, mc_3... etc
Y luego he creado este código para crear un número aleatorio sin repeticion dentro del rango 1-22.
//creamos una matriz que contenga los números que ya han sido utilizados
var usados:Array = new Array();
//creamos la funcion random
function aleatorio(min:Number, max:Number):Number {
var num:Number = Math.floor(Math.random()*(max-min+1))+min;
return num;
}
//comprobamos si está repetido
function repetido (num:Number) {
var i:Number = 0;
var repe = false;
while (!repe && i < usados.length) {
if (num == usados[i]){
repe = true;
}
i++;
}
return repe;
}
//añadimos el listener al boton sacarcartas
sacaCarta_btn.addEventListener(MouseEvent.CLICK,sacaCartas);
// y definimos la funcion principal
function sacaCartas(event:MouseEvent) {
//la función se ejecuta siempre y cuando no hayamos sacado ya los 22 numeros
if ( usados.length < 22 ) {
var numeroNuevo:Number=aleatorio(1,22);
//también la funcion está condicionada a que el número aleatorio no esté repetido utilizando la funcion de arriba
while (repetido(numeroNuevo) ) {
numeroNuevo=aleatorio(1,22);
}
//hacemos que la funcion añada los números aleatorios al array que hemos creado antes
usados.push(numeroNuevo);
//Creo una variable que conforme el nombre de instancia de mis movieclips
var ficha="mc_"+numeroNuevo
trace(ficha);//esto funciona, y me traza perfectamente todos los nombres de mis instancias
// AQUÍ ES DONDE COLOCO EL CÓDIGO QUE ME DA EL ERROR
// desactivamos el boton de sacar cartas cuando ya estén todas fuera
} else {
sacaCarta_btn.visible = false;
}
HASTA AQUÍ TODO FUNCIONA A LA PERFECCIÓN.
Mi problema está cuando le añado este código para mostrar los clips de las fichas/cartas utilizando el número aleatorio resultante más una string "mc_"
ESTE SERÍA EL CODIGO PUÑETERO
// creo un movieclip vacío y le añado la instancia que toque en cada momento...
var carta:MovieClip = new MovieClip();
carta.x = 565;
carta.addChild(ficha);
EL ERROR RESULTANTE SERÍA
TypeError: Error #1034: Type Coercion failed: cannot convert "mc_14" to flash.display.DisplayObject.
at TEST_fla::MainTimeline/sacaCartas()
Gracias de antemano...
¿alquien puede orientarme sobre lo que estoy haciendo mal?
