Cómo colocar una imagen de fondo de nuestra película que se adapte al tamaño de la ventana del navegador, escalandose pero sin distorsionarse. Escribo este tip viendo una pregunta y buscando la respuesta, que aquí posteo para el disfrute de todos ustedes
El efecto sería este (Tarda un poco en cargar). Abran la url y redimensionen la ventana para ver el efecto.
El sistema es sencillo:
Tenemos una película flash al 100% dentro del html
La película tendrá la opción de "noscale" para que no se redimensione el contenido (sólo queremos que se redimensione el fondo)
Tenemos un bitmap dentro de un clip al que escalamos según el tamaño de la ventana
Cada vez que redimensionamos la ventana del navegador redimensionaremos también el clip de fondo
Primero utilizaremos "noscale" para que al colocar el swf al 100% dentro del html no se redimensione el contenido.
Código :
Stage.scaleMode = "noscale";
Introduciremos el tamaño de nuestra película dentro de variables.
Código :
var StageWidth:Number = 550;
var StageHeight:Number = 400;
Crearemos una función que será la que redimensione el clip de fondo, que se llamará escalaFondo(). Dentro de esta función escalaremos el ancho y el alto del clip en función del ancho de la ventana Stage.
Utilizaremos como primera medida (el alto o el ancho) la que sea más grande.
Código :
if (Stage.width > Stage.height) {
Esto es para que no nos quede un trozo sin imagen.. el lado más grande será el que tenga la vista al 100% el otro quedará recortado. Por eso es importante que la imagen que estemos utilizando sea cuadrada. Por ejemplo, la que yo he utilizado mide 1900 x 1900 px. También es importante que la imagen utilizada sea de gran tamaño (pero sin pasarse...) ya que si se escala en monitores de gran resolución puede verse pixelada.
Otro paso a dar será posicionar el clip de fondo en relación a las dimensiones de la ventana. Hacemos un calculo con el tamaño de la ventana y el de la película.
err.... ¿cuál es el tamaño de la imágen? Por:La100rra
La100rra :
err.... ¿cuál es el tamaño de la imágen?
si, si, 1900x1900px quizas es un poco grande para tí, pero es que para hacer la prueba en mi monitor una imágen más pequeña pixela bastante... Por:Zguillez
No no, la pregunta era porque en ningún lado dices de que tamaño debe ser la imágen precisamente para que no tenga pérdida de resolución. Por:La100rra
La100rra :
No no, la pregunta era porque en ningún lado dices de que tamaño debe ser la imágen precisamente para que no tenga pérdida de resolución.
Si que lo escribí... no debiste leer mi post entero
Contestando a esto: El tamaño del bitmap a de ser similar al tamaño de resolución de pantalla al que queremos optimizar la pelicula. Si queremos que se vea bien en monitores a 1024 podemos utilizar una imágen de 1000x1000px, si queremos que a 1280x800 tambien se vea bien utilizaremos 1200x1200px etc... Con resoluciones mayores a la elegida evidentemente pixelará. Pero tambien hay que tener en cuenta el tamaño del archivo. Lo mejor es ir probando en diferentes monitores y resoluciones y ver como queda...
PD. El tamaño de la imágen a de ser cuadrado. Se podría modificar el código para que esto no tuviese que ser así, pero era más rápido asi... Por:Zguillez
buen aporte, se agradece... no se esperaba menos de ti. Por:Otaku_RzO_blog
Supongo que vectorizando la imagen serviria, asi no se tendria que usar una imagen tan grande, aunque una imagen con tantos detalles se eternizaria en vectorizarla, pero al cambio, pesaria menos y se cargaria antes. Es todo teoria, habria que verlo. Por:Ulises_blog
Si, no dejes de postear cuando lo hayas terminado Por:La100rra
1.- 2.- 3.-
Yo he intentado hacer eso con stage en flah pero que sea más dinámico, pero no me ha salido, es decir, que el centrado del flash fuera con easing. Este efecto es muy bueno. En fin lo dicho. 4.- Por:Sisco
Que buen efecto, te felicito, donde puedo descargarme el archivo fla??? Por:.::Manu::._blog
.::Manu::._blog :
Que buen efecto, te felicito, donde puedo descargarme el archivo fla???
No reo que sea necesario postear un .FLA Lo único que has de hacer es crear un pelicula nueva, y en el primer fotograma colocas todo el código. Luego creas un MovieCLip con la imágen bitmap que quieras, y le pones nombre de instancia "fondo" Y listo Por:Zguillez
Muchas gracias Zguillez. Sin duda que lo voy a probar. Esto no es ninguna tontería, le concede puntos a flash en la era de las altisimas dimensiones de resolución de pantalla. Genial , gracias!!
Además que la verdad que no me tardó nada cargar... Con lo grande que es la imagen... Por:Sugar_blog
en verdad esta chido el tutorial, siempre quize hacer algo asi por el estilo, gracias a todos los que participan en esta pagina la verdad esta bien chida, saludos y sigan asi. Por:luis valencia_blog
muy bueb tutorial Por:marcial_blog
como puedo hacer para que el fondo tenga animacion Por:chon_blog
chon_blog :
como puedo hacer para que el fondo tenga animacion
En la peliculña tienes un MovieClip que se llama "fondo" que es el que se escala para adaptarse a la ventana. Si en ese MovieClip en lugar de colocar un JPG colocas una animación ya tendrás un fondo animado. Por:Zguillez
buena! Por:biohazard_blog
Viendo el ejemplo http://www.cristalab.com/files/ejemplos/fondobitmap/fondofull.html y al redimensionar el navegador, noto que la foto tan pronto carga, no se ve completa en la parte superior, mas bien pareciera que el navegador funciona como una mascara para la foto ...
1. Como hago para que una imagen "realmente" se redimensione al tamño del navegador? 2. Cuál es la diferencia entre los dos sitios que referencio que hace que sus fondos en flash se comporten diferente?
1. Como hago para que una imagen "realmente" se redimensione al tamño del navegador?
La imagen si que se redimensiona realmente. Lo que yo hago es resimendionarla sin que se distorsione. Con esta línea de codigo:
Código :
if (Stage.width > Stage.height) {
calculo si la ventana es más ancha que alta o mas alta que ancha, y redimensiono la imagen para que se adapte al lado más grande:
Código :
fondo._width = Stage.width;
y luego utilizo la misma escala para redimensiona el otro lado:
Código :
fondo._xscale = fondo._yscale;
evidentemente parte de la imagen del lado pequeño quedará oculta, pero mejor eso que no que quede la imagen distorsionada... Para hacer el efecto del ejemplo que dices unicamente hay que redimensionar los lados independientemente:
asi verás toda la imagen pero distorsionada, a menos de que redimensiones la ventana con unas medidas proporcionales a la imagen.
JOHNMARTIN :
2. Cuál es la diferencia entre los dos sitios que referencio que hace que sus fondos en flash se comporten diferente?
Lo que te he dicho antes, más que en el segundo no cambian la escala sino que solo cambian la posicion _x del movieclip. Por:Zguillez
Gracias Zguillez.
Solo me queda una última pregunta: redimensionando la imagen a lo alto (sin distorcionar la imagen) se me pierde la parte de arriba de la imagen, entonces no he podido ajustar el codigo para que la imagen se mueva libremente a lo alto y a lo ancho, PERO que la imagen quede alineada a la parte superior, para poder ver la imagen de arriba hacia abajo sin importar si se pierde de vista la parte de abajo ...
Yo tengo un problema mi pantalla de ordenador es de 17" trabajo mi pagina alli cuando la edite y la vi en un otro ordenador que la pantalla era de 15" toda la animación perdida por los lados de la pantalla osea estaba muy grande, no entiendo por que yo siempre trabajo en flash con lienzo de 600x800 se supone que asi se debe ver en todas la pantallas que me paso que puedo hacer? Por:adriana_blog
gracias por responder, tenias el ejemplo aqui pero ya no lo veo donde lo puedo descargar para darme una idea mas claro de como le tengo que hacer Por:chon_blog
Me funciono........pero de todas maneras me aparece un marco blanco......no se si se debe a que no se configurar bien la publicacion en html......o no se cuál es el problema. Por:DestijL
Para los que les sale un verde coloquen esto en entre las etiquetas del <head>
perdon un verde no es, es borde Por:RonaldSpain_blog
me funciona en el previo de flash pero cuando le doy f12 no me lo respeta en el navegador. no se amplia automaticamente tengo que incluir algun codigo en html? Por:hextor_blog
Hola, estuve probando este tutorial y no hay manera que me salga. Te puedo mandar mi FLA y mi HTML para que me digas que estoy haciendo mal???? O te dejo mi mail: contacto@urrutimeoli.com.ar y me podrías mandar un fla para ver que es lo que estoy haciendo mal???? porque puse el codigo, hice el movie clip y lo estoy visualizando como una máscara (o sea, veo de la foto únicamente lo que está sobre la película flash (de 1900 x 1900 px que posee la foto veo los 550x400 px del flash.) Muchas gracias!!!!! Por:urrutimeoli_blog
hola, muy bueno, pero no me resulta... lo ke hice fue poner el bitmap dentro de un loader ke esta dentro de un movieclip. parece ke una de las directivas es que el bitmap este solo puesto en el movieclip, no dentro del loader Por:nah-chong
hola, yo probé este tutorial y me quedo perfecto, pero tengo un inconveniente ya que optimice la pantalla para 1024 pero cuando lo veo en 800 pierdo imagen, hay algún script para solucionar esto? gracias. Por:javier_blog
Gracias por el tuto, pero ayuda porfi! Lo que quiero hacer es que se adapte a la pantalla segun la resolucion del usuario, pero al achicar la ventana del explorador, que no se achique todo, sino, que quede fijo como cualquier otro swf. porque sino se solciona poniendo 100%, y no es la idea.
asi:
http://www.helioferretti.com/
saludos!! y gracias Por:leisha_blog
he hecho todo paso a paso y no me sale, no entiendo xq. Por:pachin pachan
Buenisimo el tuto! Enhorabuena y gracias, como aporte (y despues de partirme la cabeza un buen rato) añado que el codigo que tienes en el html no me funciona, pero el siguiente si:
Alguien al que le haya resultado podría poner un fla de ejemplo?
Lo he hecho exactamente igual un monton de veces y no soy capaz de que me salga. Lo que me resulta es un trozo de la imagen en la esquina superior izquierda de la pantalla, aun poniendole el swf al 100% en el html, estoy agobiao porque llevo un par de dias con el y lo que me falla tiene que ser una tonteria seguro . Por:SrCrow
Quizás este tuto puede servir a algunos. También tiene su fla! pero es sobre flash liquid, que ocupe 100% la ventana del navegador con un contenido centrado que no se distorsione.
Hola a todos: Tengo una duda, a este ejemplo le quiero añadir una barra de menú, q se encuentre siempre en la parte superior del navegador. Dando igual la definición de pantalla. ¿Cómo puedo conseguir eso? Gracias de antemano. Por:Victor_blog
pues asignándole a la barra la propiedad _x e _y a 0. Y creando un objeto que al modificar el tamaño de la venta la barra se vuelva a poner arriba a la izquierda:
Código :
var miListener:Object = new Object();
miListener.onResize = function() {
miBarra._x = 0;
miBarra.-y = 0;
};
Stage.addListener(miListener);