Comunidad de diseño web y desarrollo en internet online

Diseño Liquido y un extraño problema

Citar            
MensajeEscrito el 29 Feb 2012 07:26 am
Buenas noches amigos :D Paso a comentarles mi problema.

Resulta que estoy trabajando en un Website con el famoso Diseño Liquido en AS3. Soy nuevo en esto pero le agarre bien la mano.
Sin ir mas lejos, mi pagina se compone de 3 Movieclips: Cabecera, Contenido, Pie de Pagina. Al alinear los Movieclips, cuando se ejecuta por primera vez la pelicula todo esta bien alineado, pero al redimensionar el stage, en vez de adaptarse a las nuevas medidas, el Contenido y la Cabecera se corren en el eje x hacia la izquierda, saliendose del stage.

Subi el Website a mi dominio para que puedan verlo, aca les dejo el link:

http://sotelo-design.com.ar/Inmobiliaria_diagrama_liquido.swf

Cuando la abren se ve bien: el fondo ocupando todo el stage, el pie de pangina todo el ancho, etc. El problema esta cuando redimensionas el navegador.


Aca les dejo el codigo, solo la parte relevante al Diseño Liquido:

Código ActionScript :

//DISEÑO LIQUIDO

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

function redimensionar(e:Event=null): void
{
   //CONTENIDO
   contenido_mc.x = (stage.stageWidth - contenido_mc.width)/2;
   contenido_mc.y = (stage.stageHeight - contenido_mc.height)/2;
   
   //CABECERA
   cabecera_mc.x = (stage.stageWidth - cabecera_mc.width)/2;
   cabecera_mc.y = -2;
   
   //PIE DE PAGINA
   piedepagina_fondo_mc.width = stage.stageWidth;
   piedepagina_fondo_mc.x = (stage.stageWidth - piedepagina_fondo_mc.width) / 2;
   piedepagina_fondo_mc.y = stage.stageHeight - piedepagina_fondo_mc.height;
   
   //CONTENIDO PIE DE PAGINA
   piedepagina_mc.x = (stage.stageWidth - piedepagina_mc.width)/2;
   piedepagina_mc.y = stage.stageHeight - piedepagina_mc.height;
   
   //FONDO
   fondo_mc.width = stage.stageWidth;
   fondo_mc.height = stage.stageHeight;
   fondo_mc.x = 0;
   fondo_mc.y = 0;
}

stage.addEventListener(Event.RESIZE, redimensionar);
redimensionar();

//FIN DISEÑO LIQUIDO



Son cosas muy simples de alineamiento de los Movieclips, solo que no tengo idea porque se corre hacia la derecha, siendo que el pie de pagina funciona bien.


Muchas gracias por ayudarme. Necesito entregar este proyecto y se encuentra parado por este imprevisto :( Muchisimas gracias!!

Por xpumax

40 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Feb 2012 07:49 am
tienes que cambiar una cosa en "Configurar publicacion", en HTML tienes que poner la dimensiones por "Porcentaje"

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 06:30 pm
Gracias por responder Yonomimi. Porbe lo que me dijiste, pero ya estaba configurado al %100 en Configuracion de Pagina y sigue sin andar.
Debe ser algo en los movieclips, digo, porque el pie de pagina funciona no??

Por xpumax

40 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Feb 2012 06:47 pm
agrega un trace q t muestre el ancho y alto del contenido,, veras como cambia,,, es por la mascara q utilizas,,, proba usando ancho y alto constante,, o sea,,, q no dependa del ancho y alto del contenido.

//CONTENIDO
contenido_mc.x = (stage.stageWidth - 1000)/2;
contenido_mc.y = (stage.stageHeight - 530)/2;


Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 29 Feb 2012 07:35 pm
veo ya cual es tu problema...tienes que tener varias cosas en cuenta a la hora de recolocar los objetos de visualizacion en el escenario cuando se cambia el tamaño de la ventana.

1º el centro de cada clip que hay en el escenario --> getRect
2º la posicion dentro del clip o del escenario ---> x, y
3º tamanio de los distintos elemento ---> width, height

te hago el centrado con un clip que tiene su creacion en su centro

Código ActionScript :

import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.MovieClip;
import flash.geom.Rectangle;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

var Contenido: MovieClip= new MovieClip();
Contenido.graphics.clear();
Contenido.graphics.beginFill(0xFF0000);
Contenido.graphics.drawRect(100,50,200,100);
Contenido.graphics.endFill();
addChild(Contenido);

var Recuadro: Rectangle;
Recuadro= Contenido.getRect(Contenido);

trace(Recuadro);

stage.addEventListener(Event.RESIZE, redimensionar);

redimensionar();

function redimensionar(e:Event=null): void
{
   //Centrado en el escenario
   Contenido.x = ((stage.stageWidth - Contenido.width)/2)-Recuadro.x;
   Contenido.y = ((stage.stageHeight - Contenido.height)/2)-Recuadro.y;
}

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox

 

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