Comunidad de diseño web y desarrollo en internet online

como saber la posición de un Mc en el stage?

Citar            
MensajeEscrito el 15 Abr 2008 08:51 pm
Hola a todos, a ver si alguien me puede ayudar, estoy haciendo unas pruebas de movimiento de un mc por coordenadas en el stage, basado en este tutorial:
http://www.cristalab.com/tutoriales/11/menu-con-efecto-de-easing-en-flash

A partir de la forma en que se mueve el mc en este tutorial, yo hice que las coordenadas las de con el movimiento del mouse, cree una variable numerica que da el tamaño en x y en y del stage llamadas sizestagex y sizestagey, tambien otras variables que son para la posición del mouse, utilicé onMouseMove y dentro de este puse if (coordenadax<50) mi_clip.x =-800, lo que moverá mi_clip a la coordenada en x=-800, luego en else if (coordenadax>sizestagex-50), lo que hará que cuando el mouse se ponga a 50px del borde derecho, el mc se vaya a otra coordenada,
pongo el código que utilicé:

Código :

Stage.align = "TL";
Stage.scaleMode = "noScale";
//--------------------------
var sizestagex:Number = Stage.width;
var sizestagey:Number = Stage.height;
var pantalla:Object = new Object();
pantalla.onResize = function() {
   
   sizestagex = Stage.width;
   sizestagey = Stage.height;
}
Stage.addListener(pantalla);
pantalla.onResize();

//----------

mi_clip.x = -200;
mi_clip.y = -200;
mi_clip.onEnterFrame = function() {
   this._x += (this.x-this._x)*0.05;
   this._y += (this.y-this._y)*0.05;
};


//----------

onMouseMove = function(){
   var coordenadax:Number = _xmouse;
   trace("x = "+coordenadax)
if (sizestagex<800){
   if (coordenadax<50){
   mi_clip.x = 0;
   }
   else if (coordenadax>sizestagex-50){
   mi_clip.x = -800+sizestagex;
   }
   else {
      mi_clip.x = stop
   }
}
else {
   if (coordenadax<50){
   mi_clip.x = (sizestagex-800)/2;
   }
   else if (coordenadax>sizestagex-50){
   mi_clip.x = (-800+sizestagex)/2;
   }
   else {
      mi_clip.x = stop
   }
}
   var coordenaday:Number = _ymouse;
   trace("y = "+coordenaday)
   trace(" ")
   
   if (sizestagex<800){
   if (coordenaday<50){
   mi_clip.y = 0;
   }
   else if (coordenaday>sizestagey-50){
   mi_clip.y = -800+sizestagey;
   }
   else {
      mi_clip.y = stop
   }
}
else {
   if (coordenaday<50){
   mi_clip.y = (sizestagey-800)/2;
   }
   else if (coordenaday>sizestagey-50){
   mi_clip.y = (-800+sizestagey)/2;
   }
   else {
      mi_clip.y = stop
   }
   }
   
}


ahora bien en donde dice else, le doy a el mc que se detenga, pero el movimiento es muy seco, a comparación del movimiento con easing que da cuando uno mueve el mc, entonces lo que quiero es saber como averiguar mientras se mueve el mc, de una coordenada a otra, su posición en el stage, para por medio de alguna formula, hacer que se frene pero cambiando el valor de mi_clip.x, osea si va por la coordenada en x= -200, hacer que se detenga 50 px "mi_clip.x = (coordenada actualdel mc + 50)" después con el efecto de easing, ya que con el stop, se detiene exactamente en el momento que el mouse sale del area donde funciona el código, y se detiene bruscamente.

pd: el tamaño de mi swf es 400x400 y el movieclip que se mueve detras es de 800x800

o si a alguien se le ocurre otra forma de hacer que se detenga suavemente.

muchas gracias a quien me ayude :lol:

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 16 Abr 2008 04:47 pm
asi sabes la cordenada del mc todo el tiempo

Código :


onEnterFrame=function(){
   trace(mi_clip._x)
}

Por el_putas

58 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2008 05:25 pm
ok, ya entendí, ahora el problema que tengo es como hacer para que me de el valor solo una vez, cuando salga del área donde me envía a la orilla del stage, por que probé asi, y como la posicion cambia constantemente nunca se llega a detener talvez alguna opcion on roll over y que al entrar en el área asignada marque la posición del clip, pero que no lo siga haciendo, osea que solo marque la posicion 1 vez

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 17 Abr 2008 09:28 pm
lo del roll over pues....

Código :

cosa="no"
boton.onRollOver= function (){
if (cosa=="no") {
trace (mi_clip._x);
cosa="si"
}
}


y usas un:

Código :

onRollOut=function (){
cosa="no"
}

nadamas cambia la variable cosa para que no se vea tan mal... :P ...
y si quieres que sea al llegar a cierto punto pues cambia haz otra condicional que contenga la que ya esta y que verifique la posicion del MC...
almenos eso haria yo...

Por riajiru

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Abr 2008 09:32 pm
oh, ok entiendo, voy a hacer pruebas y les cuento.
gracias :lol:

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.