Bueno en otro tema que cree hace unos meses perguntando de como hacer para que un Clip de película persiga al cursor del mouse y cuando colisione salte a otro fotograma:
Bueno gracias al usuario Hernán que me hizo el código de AS 2 para lo que yo necesitaba, lo pude agregar a mi SWF que estoy haciendo, pero se me presentaron problemas y el problema principal es el siguiente:
Éste es el código Completo:
Código ActionScript :
var velocidad:Number = 50; // Velocidad del misil, a más grande el número más lento.
var radio_explosion:Number = 2; // Que tan cerca estará el misil antes del boom
// Función para calcular el ángulo en que debe apuntar la "trompa" del misil
function calcAngle(x1:Number, x2:Number, y1:Number, y2:Number):Number {
var x3 = x2-x1;
var y3 = y2-y1;
if (x3 == 0) {
return (Math.atan2(y3, x3)*(180/Math.PI))-90;
} else {
return Math.atan2(y3, x3)*(180/Math.PI);
}
}
// Función para calcular que tan cerca esta el misil
function calcDistance(x1:Number, x2:Number, y1:Number, y2:Number):Number {
var x3 = x2-x1;
var y3 = y2-y1;
return Math.sqrt(x3*x3+y3*y3);
}
// Función de que hara cuando este demasiado cerca, el "BOOM"
function boom():Void {
angulo.text = "BOOM!!!";
distancia.text = "BOOM!!!";
}
// Función que mueve literalmente el misil
function moverMisil():Void {
// Calculamos el ángulo y le sumamos 90° (Para corregir un problema de cuadrantes que tiene Flash)
var angle:Number = calcAngle(misil._x, _root._xmouse, misil._y, _root._ymouse)+90;
// Rotamos el misil
misil._rotation = angle;
// Movemo el misil con una función de easing casera
misil._x += (_root._xmouse-misil._x)/velocidad;
misil._y += (_root._ymouse-misil._y)/velocidad;
// Calculamos que tan cerca tenemos el misil
var dist:Number = calcDistance(misil._x, _root._xmouse, misil._y, _root._ymouse);
// Informamos los valores
angulo.text = "Angulación: "+Math.round(angle)+"°";
distancia.text = "Distancia: "+Math.round((dist-(misil._width/2)));
// Determinamos si el mismo esta demasiado cerca, agregando el desplazamiento del centro a la puntal del misil y el radio de explosión determinado
if ((dist-(misil._width/2))<=radio_explosion) {
boom();
}
}
// Activamos el código
id = setInterval(moverMisil, 0);éste es el resultado de a lo que yo me refería que deseaba hacer cuando cree el otro tema que les dije:
Bueno éste código se tiene que poner en el primer fotograma y luego abajo crear una capa para dibujar el cohete o en éste caso el triángulo Rojo del ejemplo de arriba...
Y éste se me fue complicando al agregarlo en mi SWF entonces mi pregunta es:
¿Cómo tengo que modificar éste código AS 2 para que en vez de que esté puesto en un fotograma se pueda poner en el mismo Clip de Pelicula (o sea el triángulo Rojo del SWF de arriba) y que siga funcionando de la misma forma?
Por que lo intenté hacer y me dá error, ¿como podría hacer eso?
Por favor lo necesito urgente !!!
Gracias, saludos
