Se trata de crear 25 cartas y luego moverlas desde un punto inicial hasta otro punto. La cosa parece sencilla.
En primer lugar tengo esta función que me crea los 25 mc:
Código:
Si os habeis fijado dentro de la función RepartirCartes() llamo a la función Moviment() que tiene el siguiente código:function RepartirCartes():Void { var num_carta:Number; var eix_y_ini:Number = 33; var eix_x_ini:Number = 15; var eix_y:Number = 165; var eix_x:Number = 15; for( var n = 1; n <= 25; n ++ ) { // compruebo si ya he utilizado la carta do { num_carta = 1 + random( 25 ); }while( inArray( num_carta, _root.cartes_usades ) ) _root.cartes_usades.push( num_carta ); // creo la carta var carta:MovieClip = _root.createEmptyMovieClip( "carta_" + n, this.getNextHighestDepth() ); carta.createEmptyMovieClip( "img", this.getNextHighestDepth() ); carta.img.attachMovie( "carta" + num_carta, "carta_" + num_carta, this.getNextHighestDepth() ); // muevo la carta desde la posición origen hasta la final Moviment( n, eix_x_ini, eix_x, eix_y_ini, eix_y ); eix_x += 105; // cada 5 cartas bajo una fila y empiezo desde la primera columna if( (n % 5) == 0 ) { eix_y += 105; eix_x = 15; } } }
Código:
El problema de todo esto está en que no me entra dentro del onEnterFrame a medida que voy creando las cartas. Crea las 25 cartas primero y cuando ha creado la última entonces sí que empieza a entrar en el onEnterFrame. Es decir sólo mueve la última carta.function Moviment( index:Number, x_ini:Number, x_fin:Number, y_ini:Number, y_fin:Number ):Void { this["carta_" + index]._x = x_ini; this["carta_" + index]._y = y_ini; this.onEnterFrame = function() { this["carta_" + index]._x += ( x_fin - this["carta_" + index]._x ) / 2; this["carta_" + index]._y += ( y_fin - this["carta_" + index]._y ) / 2; if( Math.ceil( this["carta_" + index]._x ) == x_fin && Math.ceil( this["carta_" + index]._y ) == y_fin ) delete this.onEnterFrame; } }
¿Alguien tiene alguna sugerencia?