Hola, os quería comentar un problema que tengo a ver si alguien me puede ayudar.
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:
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;
}
}
}
Si os habeis fijado dentro de la función RepartirCartes() llamo a la función Moviment() que tiene el siguiente código:
Código:
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;
}
}
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.
¿Alguien tiene alguna sugerencia?