Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/08/2007, 06:04
kirof
 
Fecha de Ingreso: noviembre-2004
Mensajes: 47
Antigüedad: 19 años, 5 meses
Puntos: 0
De acuerdo Re: Juegode navecitas: problemas con funciones en Flash8

Muchas gracias!! He solucionado el problema. Lo que hice fue lo q me dijiste. Pasé los parámetros como MC y, en la llamada a la función, les añadí "_root." delante. Ahora va perfecto.

Por si interesa, dejo aquí el código.

Código del frame en la línea de tiempo de la escena:
Código:
function colisionLaser(nombreLaser:MovieClip, nombreEnemigo:MovieClip, valorEnemigo:Number){
	if (nombreEnemigo.hitTest(nombreLaser)){
		myLoop = new Sound();  // cargo el sonido de la explosión
		myLoop.attachSound("explosion2");
		myLoop.start();
		_root.puntos = Number(_root.puntos) + valorEnemigo; //incremento la puntuación con el valor del enemigo derribado
		_root.destruidos += 1; // incremento el nº de enemigos destruidos
		nombreEnemigo._x += 5; //invierto la animación para dar efecto de explosión en el aire
		nombreLaser.removeMovieClip(); //borro el láser
		nombreEnemigo.gotoAndPlay(15); //animación explosión de la nave enemiga
	 }
}

Y ahora el código en el MC vacío desde el que llamo a la función:
Código:
onClipEvent(enterFrame){
	_root.colisionLaser(_root.disp0, _root.enemigo1, _root.valorEnemigo1);
	_root.colisionLaser(_root.disp1, _root.enemigo1, _root.valorEnemigo1);
	_root.colisionLaser(_root.disp2, _root.enemigo1, _root.valorEnemigo1);
	_root.colisionLaser(_root.disp3, _root.enemigo1, _root.valorEnemigo1);
	_root.colisionLaser(_root.disp4, _root.enemigo1, _root.valorEnemigo1);
	
	_root.colisionLaser(_root.disp0, _root.enemigo2, _root.valorEnemigo2);
	_root.colisionLaser(_root.disp1, _root.enemigo2, _root.valorEnemigo2);
	_root.colisionLaser(_root.disp2, _root.enemigo2, _root.valorEnemigo2);
	_root.colisionLaser(_root.disp3, _root.enemigo2, _root.valorEnemigo2);
	_root.colisionLaser(_root.disp4, _root.enemigo2, _root.valorEnemigo2);
	
	_root.colisionLaser(_root.disp0, _root.enemigo3, _root.valorEnemigo3);
	_root.colisionLaser(_root.disp1, _root.enemigo3, _root.valorEnemigo3);
	_root.colisionLaser(_root.disp2, _root.enemigo3, _root.valorEnemigo3);
	_root.colisionLaser(_root.disp3, _root.enemigo3, _root.valorEnemigo3);
	_root.colisionLaser(_root.disp4, _root.enemigo3, _root.valorEnemigo3);
}
De nuevo mil gracias.