Comunidad de diseño web y desarrollo en internet online

Mal centrado de un MC

Citar            
MensajeEscrito el 11 Sep 2008 01:25 am
Que onda les presento mi siguiente problema

Estoy haciendo una pagina en flash que se centra automáticamente dependiendo del tamaño de la ventana o ventana completa según donde sea vista, para ellos creo un MC llamado "contenido" que es el que se centra con el siguiente código.

Código :

stop();
//Centrar Contenido
contentEase = 10;

myListener = new Object();
myListener.onResize = function() {
   contenido.onEnterFrame = function() {
      // Centrar Y
      contentYTarg = Math.round((Stage.height - contenido._height)/2);
      contentYDist = contentYTarg - contenido._y;
      contenido._y += contentYDist/contentEase;
      if (contentYDist > 0) {
         contenido._y = Math.ceil(contenido._y);
      }else{
         contenido._y = Math.floor(contenido._y);
      }
      if (Math.abs(contentYDist) < 1) {
         contenido._y = contentYTarg;
      }
      // Centrar X
      contentXTarg = Math.round((Stage.width - contenido._width)/2);
      contentXDist = contentXTarg - contenido._x;
      contenido._x += contentXDist/contentEase;
      if (contentXDist > 0) {
         contenido._x = Math.ceil(contenido._x);
      }else{
         contenido._x = Math.floor(contenido._x);
      }
      if (Math.abs(contentXDist) < 1) {
         contenido._x = contentXTarg;
      }
      // Si esta centrado
      if (contentYDist == 0 && contentXDist == 0) {
         delete contenido.onEnterFrame
      }
   }


Funciona, cargo swf externos en un "cargadorswf_mc" dentro de "contenido" incluso si excede de los limites de "contenido" (ejemplo, un texto con scrolltext con mascara) centra todo, no pasa nada no se descuadra. El problema es cuando cambio de ventana completa a ventanas o viceversa, busca el nuevo centro de la pantalla y es ahí cuando se descuadra, porque toma en cuenta los limites del scrolltext.

¿Alguien sabe como pudiera evitar esto? ¿ignorar los sobrelimites de cargadorswf_mc" mediante AS u otro método?
Que centre TODO lo que hay en el MC "contenido" ignorando los sobrelimites que hay en el MC "cargadorswf_mc"
(obvio que centre tambien de acuerdo a "contenido" lo que hay dentro de "cargadorswf_mc")

Les pongo unas imagenes para explicar.

Ventana normal o completa


Carga de un swf externo que excede limites y sigue entrado


Al cambiar de ventana completa a ventana normal o viceversa se descuadra porque toma en cuenta el texto aunque esté oculto por una mascara.


quiero que contenido siga centrado y que al momento de cargar el swf externo que excede limites no se descuadre.





Gracias de antemano

Por Konfleis

BOFH

1176 de clabLevel

1 tutorial
2 articulos

Genero:Masculino   Bastard Operators From Hell Desarrollador de GAIA

Desde la CerealBox

firefox
Citar            
MensajeEscrito el 11 Sep 2008 01:41 am
Creo que se el problema, cuando agrega algo a contenido, debe estar cambiado los ._x e ._y de contenido y los debe de estar tomando en cuenta para calcular la nueva posicion. Lo que creo que debes hacer, es setear algunos valores (a contenido) ni bien carga todo, asi los toma como referencia para calcular la nueva posicion.
Espero tener razon XD

Y no digas "gracias de antemano" me hiciste acordar a los que piden saber como juaker jotmeil

Por Dientuki

Claber

2021 de clabLevel

11 tutoriales
1 articulo

Genero:Masculino   Héroes

Front-end Ninja

firefox
Citar            
MensajeEscrito el 11 Sep 2008 01:43 am
Me pierdo con el código, pero básate en el tamaño de la máscara para centrar, no en el contenido

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Sep 2008 02:06 am
esto es un tip? :P

Por Otaku RzO

BOFH

1890 de clabLevel

12 tutoriales
1 articulo

Genero:Masculino   Desarrollador de GAIA Bastard Operators From Hell

Lima - Perú

firefox
Citar            
MensajeEscrito el 11 Sep 2008 09:33 am
El texto lo tienes enmascarado por alguna razón?
Porque si hace scroll sin un easing o algo parecido puedes hacerlo con un campo de texto dinámico y no presentarías este problema.

Ahora lo que debes hacer es otro movieClip, imagina que dentro de contenido, el cuadro gris claro es otro movieClip, llamémosle borde, debería quedar algo como esto:

Código ActionScript :

contentYTarg = (Stage.height - contenido.borde._height) / 2;

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 12 Sep 2008 03:33 am
Voy a probar gracias

Por Konfleis

BOFH

1176 de clabLevel

1 tutorial
2 articulos

Genero:Masculino   Bastard Operators From Hell Desarrollador de GAIA

Desde la CerealBox

firefox
Citar            
MensajeEscrito el 16 Sep 2008 11:37 pm
elchininet,
mmm me hice pelotas, te referías a que dentro de contenido creara otro mc llamado borde? o afuera de contenido? :P :oops:

Por Konfleis

BOFH

1176 de clabLevel

1 tutorial
2 articulos

Genero:Masculino   Bastard Operators From Hell Desarrollador de GAIA

Desde la CerealBox

firefox
Citar            
MensajeEscrito el 17 Sep 2008 08:41 am

imagina que dentro de contenido, el cuadro gris claro es otro movieClip


Dentro de contendio crea un movieClip que se puede ver o no con el mismo tamaño del cuadro gris claro, puede ser el mismo cuadro gris.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Sep 2008 11:47 pm
pues intenté todo y no me funcionó, muchas gracias de todas formas. :P

inluso intenté modificando el codigo pero aun asi como el "mc_loader" sigue dentro de contenido, al momento de cambiar de multiple ventana a ventana completa, se acomoda dependiendo del swf cargado.

incluso intenté agregando al codigo que me dijiste y no resultó:

Código :

   contentXTarg = (Stage.width - contenido.borde._width) / 2;
   contentYTarg = (Stage.height - contenido.borde._height) / 2;


borde se ajusta al centro pero de todas formas como esta dentro de contenido al cambiar de una a otra contenido se va para arriba :P


respondiendo a tu otra pregunta: tengo el scroll dentro de una mascara porque no solo es texto sino tambien incluyo imagenes y graficos.}

Gracias de todas formas, seguiré intentando.

Por Konfleis

BOFH

1176 de clabLevel

1 tutorial
2 articulos

Genero:Masculino   Bastard Operators From Hell Desarrollador de GAIA

Desde la CerealBox

firefox
Citar            
MensajeEscrito el 22 Sep 2008 09:34 am
He construido un ejemplo igual al tuyo, y he probado y me lo centra correctamente, lo que debes centrar no es el borde sino el contenido, pero guiandote por el alto o ancho de borde:

Código ActionScript :

myListener.onResize = function():Void{
   
   var contentXTarg:Number = (Stage.width - contenido.borde._width) / 2;
   var contentYTarg:Number = (Stage.height - contenido.borde._height) / 2;
   
   contenido._x = Math.round(contentXTarg);
   contenido._y = Math.round(contentYTarg);
    
};


Ahora por otro lado, puedes incluir imágenes y movieClips en un texto dinámico si utilizas texto en html.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Sep 2008 05:50 pm
Tuve un pequeño error de escritura pero el código anterior que me habías proporcionado:

Código :

contentXTarg = (Stage.width - contenido.borde._width) / 2;
contentYTarg = (Stage.height - contenido.borde._height) / 2;


funcionó perfectamente.
Ahoran tengo centrado y con efecto easing, incluso si tengo clips que esten enmascarados como scrolls o graficos que tengan un tamaño que sobrepase el limite de "contenido"
Muchas gracias.

Por Konfleis

BOFH

1176 de clabLevel

1 tutorial
2 articulos

Genero:Masculino   Bastard Operators From Hell Desarrollador de GAIA

Desde la CerealBox

firefox

 

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