Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2009, 12:04
bambuweb
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 14 años, 10 meses
Puntos: 1
escalado proporcional del fondo

Buenas, saludos para todos.

Tengo el siguiente problemita que me esta comiendo la cabeza ya.

Tengo creada una animacion con un mc que actua de fondo, el cual tiene que ocupar todo el ancho y alto de la pagina, pero proporcionalmente. El script que utilice incialmente es el de un tutorial de otra web, sobre fondo bitmap, pero me comia una parte de la foto y no pude adaptarlo para que deje de hacerlo.
Entonces seguí buscando, y mezcle ese codigo con otro para llegar a hacer lo que yo queria. En principio funciona perfecto. El unico problema es que la imagen recien se escala al ancho o alto del navegador solo cuando cambio el tamaño del navegador, no antes.
O sea, cuando abro la pagina, el mc de fondo no cubre todo, pero una vez que cambio el tamaño del navegador, empieza a funcionar perfectamente, aunque vuelva a maximizar la pantalla.
Creo que el problema debe estar en que no esta bien declara la funcion para que se ejecute al inicio, pero no pude lograr que lo haga.

Les dejo el codigo:

Cita:
Stage.align = "TL"
Stage.scaleMode = "noscale";
//-----------------------
function escalaFondo()
{
text_info = Stage.width+" x "+Stage.height;
menufondo._width = Stage.width;
menufondo._y = Stage.height-menufondo._height-20;
menufondo._x = stage.width-menufondo._width;
// aqui haremos los calculos, para eso creamos una variables con las medidas originales y otro con las medidas finales:
ancho1 = fondo._width;
alto1 = fondo._height;
ancho2 = Stage.width;
alto2 = (ancho2 * alto1) / ancho1;
// si el nuevo valor del alto, es mayor que el valor maximo de la pantalla, recalculamos el tamaño poniendo el alto como maximo
if (alto2 > Stage.height) {
alto2 = Stage.height;
ancho2 = (ancho1 * alto2) / alto1;

}
// aqui asignamos los valores que calculamos al intro
fondo._width = ancho2;
fondo._height = alto2;
fondo._x = (Stage.width - fondo._width) / 2;
fondo._y = (Stage.height - fondo._height) / 2;
}
//-----------------------
onLoad.escalaFondo();
onLoad = function() {
precargador_mcl.loadClip("foto1.swf", cuerpo);
};
Stage.addListener(this);
this.onResize = escalaFondo;
escalaFondo();
stop();
referencias: text_info = es un texto dinamico que muestra el tamaño real del ancho y el largo del navegador

menufondo = una barra que actua de menu, que esa se posiciona perfecto, no hay problemas con eso

fondo = el mc de fondo que se escala proporcionalmente

foto1.swf = es un swf externo que se carga en el mc "fondo" (dentro de ese mc, hay otro que es el que realmente carga el fondo, ya que dentro de "fondo", hay una galeria de fotos)

Gracias a todos de antemano!

(Si alguien puede optimizar esto para que los que necesiten este mismo efecto con su fondo lo puedan utilizar, seria mejor todavia!)