Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2006, 11:14
MiquelCS
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
onEnterFrame dentro de bucle (para expertos)

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?
__________________
.