Comunidad de diseño web y desarrollo en internet online

posicion absoluta de un objeto

Citar            
MensajeEscrito el 24 Jun 2005 05:51 pm
buenas,

estoy buscando la forma de obtener la posición absoluta de un objeto en el escenario, es decir, el pixel en el que está. Como un clip puede estar anidado dentro de otro, su propiedad _x puede ser 0 pero si la de su padre es 100, la posición final será 100. Ahora mismo estoy haciendo ese cálculo a mano, además de ir dividiendo por la escala, con lo que se complica mas. Me pregunto.. ¿hay alguna forma menos bruta de hacer esto? No encuentro nada por la documentación...

muchas gracias

Por schs

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Jun 2005 05:57 pm
No creo que haya otra forma, y creo que vas por buen camino como lo estas haciendo... :lol: :lol:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Jun 2005 06:15 pm
Restandole el padre...

Código :


xPadre = clip._x;
yPadre = clip._y;
xHijo = _root.clip.sub_clip._x;
yHijo = _root.clip.sub_clip._y;
_root.clip.sub_clip._x = xHijo-xPadre;
_root.clip.sub_clip._y = yHijo-yPadre;



No se se me ocurrio eso ...
:)

Por Sanwar

69 de clabLevel



 

Argentina - Tucumán

firefox
Citar            
MensajeEscrito el 24 Jun 2005 06:44 pm
bueno esa es la forma como te dice sanwar, creo que eso es lo que estaba haciendo schs no?!

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Jun 2005 06:47 pm
Sanwar, mas bien, se tiene que sumar, para obtener la posición x relativa.

Ahora schs te recomiendo que uses funciones que te puedan servir en futuros proyectos.

Por ejemplo la de la posicion _x Absoluta, sera algo como:

Código :

function dameXAbsoluta(Clip:MovieClip) {
   var _xAbsoluta:Number = Clip._x;
   while (Clip._parent<>undefined) {
      _xAbsoluta += Clip._parent._x;
      Clip = Clip._parent;
   }
   return _xAbsoluta;
}
trace(dameXAbsoluta(cont.cuadro));


Saludos! :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 24 Jun 2005 07:03 pm
mmmmmm... :?

schs escribió:



estoy buscando la forma de obtener la posición absoluta de un objeto en el escenario, es decir, el pixel en el que está. Como un clip puede estar anidado dentro de otro, su propiedad _x puede ser 0 pero si la de su padre es 100, la posición final será 100.



Lo q yo entiendo es q cuando mueva el clip padre el hijo quede en la posicion q estaba anteriormente..

No entiendo por que decis sumarle si para q que quede en la posicion absoluta tiene q restar...

:? me hirve la cabeza

Por Sanwar

69 de clabLevel



 

Argentina - Tucumán

firefox
Citar            
MensajeEscrito el 24 Jun 2005 08:24 pm
Haber, no hay que complicarnos.

Si tu tienes un clip, en tu pelicula principal "_root" con nombre de instancia "Padre".
Este clip tiene la propiedad _x = 100;

Tenemos que:

Padre._x=100;

Ahora dentro de Padre tenemos un clip con nombre de instancia, y la propiedad _x = 50:
Tenemos que:
Hijo._x=50;

Entonces la ruta absoluta(con centro de origen en _root[0,0]) en _x, del Clip Hijo, sería 150.

¿Por qué?


Clip padre, como vemos esta recorrido 100 pixeles, ahora el hijo dice 50 pixeles, que son en relación al Clip padre. Asi que sumando tenemos 150.

Por las dudas lo pongo mas claro aún:



Bueno espero que con esto quede un poco mas claro, suerte! :)

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 24 Jun 2005 10:00 pm
Bien, eso esta mas que claro...
Yo entendi otra cosa, pense q schs queria que el movieClip hijo quedara fijo en una posicion, osea si yo muevo el padre el hijo quede en la posicion q estaba...

:oops:

Por Sanwar

69 de clabLevel



 

Argentina - Tucumán

firefox
Citar            
MensajeEscrito el 24 Jun 2005 10:27 pm
Muchos problemas familiares aqui :lol:

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 25 Jun 2005 11:50 am
Muchos problemas familiares aqui :lol:
:lol: :lol: :lol:

gracias por tantas respuestas :) por lo que veo no hay mas remedio que hacerlo "a mano"
me ha gustado la idea de la función genérica, ahora mismo lo calculo todo a pelo pero haré eso. Aunque tendría que añadirle que tenga en cuenta la escala, algo parecido a esto:

Código :

_xAbsoluta += (Clip._parent._x)*Clip._parent._xscale/100;


la probaré que no se si sería así exactamente y ya lo pego por aquí por si le puede servir a alguien

pues eso, gracias a todos [/quote]

Por schs

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Ago 2008 03:20 pm
Al final esto como queda?

creo que es una funcion muy util, y deveria quedar cerrado...

Como queda el tema del Scale?

Como aplicariamos un rotation?
(si el clip del cual queremos saber la X.Y absoluta , esta dentro de un clip que ha sido rotado)


Saludos!

Por CracK

1 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 11 Ago 2008 04:06 pm
De echo la mejor forma de hacer esto es utilizando la funcion localToGlobal. Esta función recibe un point, por lo tanto tendrás que guardar la x y la y en un objeto Point.

Código :

var myPoint:Object = new Object();
myPoint.x = 50;
myPoint.y = 20;

//o bien
var myPoint:Object = {x:50, y:20};


Luego sólo tienes que hacer:

Código :

myMovieClip.localToGlobal(myPoint);
trace ("x: " + myPoint.x); 
trace ("y: " + myPoint.y); 



saludos.

Por ur!

256 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 12 Ago 2008 08:09 am
Testeado i funcionando.

muy buen metodo ur! 100 gracias

estaba loco ya con tan, cos, sin, ....... etc :crap:

Por CracK

1 de clabLevel



 

Barcelona

firefox

 

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