Comunidad de diseño web y desarrollo en internet online

Fondo con diagramación liquida pero swf principal centrada

Citar            
MensajeEscrito el 27 May 2009 10:00 am
Buenas, tengo un problema con la diagramación liquida (otro más...), el problema es que necesito que la pelicula esté centrada y no alineada a la izquierda.

Para que la diagramación liquida funcione debe estar la propiedad stage.align "TL", con esto el fondo se me acopla a todo el navegador ok pero la pelicula principal "home" también se queda alineada a la izquierda.

Yo quiero tener el fondo con diagramación pero la "home" centrada en el navegador. Es posible? cambiando las propiedades stage.align consigo centrarlo pero entonces el fondo no hace la diagramación.

Merci!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 May 2009 01:52 pm
si la home es un mc (donde cargas un swf) o cualquier elemento de la DisplayList, podes ubicarlo así:
home_mc.x = (stage.stageWidth/2)-(home_mc.width/2);
home_mc.y = (stage.stageHeight/2)-(home_mc,height/2);

recorda que tenes que escuchar el evento RESIZE y poner el mismo código que te pasé arriba para que se mantenga siempre centrado si se cambia el tamaño del navegor.

Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 May 2009 11:18 am
Mmmm vamos a ver...

En el fotograma 1 tengo la imagen de fondo que tiene que hacer diagramación con:

Código :

miListener.onResize(); 
Stage.align = "TL";
/*la propiedad stage.align hace que nuestra película quede anclada arriba (top) y a la 
izquierda (left), para el resto de opciones de anclaje usa la guía de referencia de AS */
Stage.scaleMode = "noScale";
var miListener:Object = new Object();
{
   //ajustamos el ancho de las barras al del Stage
   fondo._width = Stage.width;
   fondo._height = Stage.height;
   
};
Stage.addListener(miListener);





En el fotograma 2 un mc vacio llamado "mc" donde se carga la home, en este fotograma pongo el código

Código :

mc.x = (stage.stageWidth/2)-(mc.width/2);
mc.y = (stage.stageHeight/2)-(mc,height/2);


I sigue todo igual, hace la diagramación pero la home no queda centrada, queda a la izquierda.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 May 2009 12:24 pm
El código de ajustar el clip mc lo debes de poner dentro del listener del onResize del stage, que por cierto no lo tienes de la manera correcta. Mira este tutorial y observa como se llama a la función que se ejecuta con el onResize del stage.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 May 2009 01:42 pm
Buf bueno vamos a ver. El tutorial de diagramación liquida si que lo he utilizado pero ahora he caido que con swfobject no funciona para cargar el fondo.
Adjunto codigo que he puesto diferente al primero y si que funciona con swfobject. Todo en el primer fotograma, que es donde se carga la home a través de una precarga

Código :

Stage.scaleMode = 'noScale'; 
Stage.align = 'TL'; 
redim = new Object(); 
redim.onResize = redimensionar; 
Stage.addListener(redim); 
function redimensionar() { 
   fondo._width = Stage.width; 
   fondo._height = Stage.height; 
   mc.x = (stage.stageWidth/2)-(mc.width/2);
mc.y = (stage.stageHeight/2)-(mc.height/2);
} 
redimensionar();


y la precarga

Código :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();

Stage.showMenu=false;


listener.onLoadStart = function(target_mc) {
   trace("Iniciando");

};


listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   trace("En progreso");
   
   var porcentaje:Number;
   
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   
   
   target_mc._visible=false;
   target_mc.stop();
};


listener.onLoadComplete = function(target_mc) {
   trace("ya");
   
   _root.barra_mc.removeMovieClip();
   
   target_mc._visible=true;
   target_mc.play();
};

precargador_mcl.addListener(listener);

precargador_mcl.loadClip("home_2.swf", mc);
   


Y nada, si tengo diagramación en el fondo per el mc donde se carga la home queda alineado a la izquierda.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 May 2009 11:02 pm
Que es lo que no se coloca en la posición correcta, el fondo o el mc que carga wl SWF, no me ha quedado clara tu pregunta.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 29 May 2009 07:00 am
El mc que carga el swf "home" debe quedar centrado pero se coloca en la izquierda.

Al hacer la diagramación, toda la pelicula coje la propiedad align="TL"

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2009 08:06 am
Me doy cuenta de algo... estas propiedades:

Código ActionScript :

mc.x;
mc.y;
mc.width;
mc.height;
stage.stageWidth;
stage.stageHeight;


Son de AS3, y estás trabajando con AS2, por lo tanto deben ser así:

Código ActionScript :

mc._x;
mc._y;
mc._width;
mc._height;
Stage.width;
Stage.height;


Tu código debería quedar así:

Código ActionScript :

mc._x = (Stage.width - mc._width) / 2;
mc._y = (Stage.height - mc._height) / 2;


Después que hagas esto, haz una prueba, después que cargue tu película en el movieClip mc, redimensiona el explorador cambia el tamaño de la ventana y mira a ver si el movieClip se sitúa en la posición correcta.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 29 May 2009 08:33 am
Funciona ok! Mil gracias!

Ahora todo esto pasa cuando se haga un rezise, pero, si quiero que salga desde el principio, no cuando haga un resize? tengo que eliminar el listener?

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2009 01:26 pm
No, en el onloadInit del stage debes llamar a tu función de redimensionar y así desde el principio todo estará ok.

Código ActionScript :

listener.onLoadInit = function(target_mc) {

    redimensionar();

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 02 Jun 2009 11:26 am
Perdon pero no veo dónde poner el código, en un fotograma aparte? junto con el código de diagramación? lo he probado en los dos pero sigue igual

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jun 2009 12:56 pm
Debes remplazar la función de onLoadComplete por lo de onLoadInit:

Código ActionScript :

listener.onLoadInit = function(target_mc:MovieClip):Void {
   
   _root.barra_mc.removeMovieClip();
   
   target_mc._visible = true;

   redimensionar();

   target_mc.play();
};


Y recuerda que la función de redimensionar debe tener las líneas de las x y las y del movieClip situadas de esta manera:

Código ActionScript :

mc._x = (Stage.width - mc._width) / 2; 
mc._y = (Stage.height - mc._height) / 2; 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 02:57 pm
Merci,
Quiero que la pelicula me quede centrada horizontalmente, no verticalmente, eliminando el mc._y lo he conseguido.

Ahora el problema es que al principio no me sale la pelicula centrada, sino en la parte derecha. Para que te hagas una idea el centro de la pelicula queda en el margen derecho de la ventana "exportar" de flash, por lo que la mitad izquierda del sfw se ve y la mitad derecha no. Una vez hago redimensionar, se me centra ok tal y como quiero en el documento. Cómo hago para que me salga centrada en el centro desde el principio?

El código de la diagramación:

Código :

Stage.scaleMode = 'noScale'; 
Stage.align = 'TL'; 
redim = new Object(); 
redim.onResize = redimensionar; 
Stage.addListener(redim); 
function redimensionar() { 
   fondo._width = Stage.width; 
   fondo._height = Stage.height; 
   mc._x = (Stage.width - mc._width) /2;  

 
} 
redimensionar();


Aqui me sale todo ok, la diagramación y el centrado vertical.

Código :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();

Stage.showMenu=false;


listener.onLoadStart = function(target_mc) {
   trace("Iniciando");
   
};


listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   trace("En progreso");
   
   var porcentaje:Number;
   
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   

   target_mc._visible=false;
   target_mc.stop();
};


listener.onLoadComplete = function(target_mc) {
   trace("ya");

   _root.barra_mc.removeMovieClip();
   //Y mostramos el objeto
   target_mc._visible=true;
   target_mc.play();
};

listener.onLoadInit = function(target_mc:MovieClip):Void { 
       
   redimensionar(); 

};

precargador_mcl.addListener(listener);


precargador_mcl.loadClip("home_accio.swf", mc);

   


He substituido onloadinit por onloadcomplete pero nada, hace lo mismo. Debe quedar centrada horizontalmente no al hacer resize, sino al principio.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Jun 2009 03:10 pm
Eso debe ser que al principio, la película que cargas tiene elementos que no ocupan el ancho total de la pantalla. Describe la película que cargas y que quieres centrar ¿que tiene en el primer frame?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 03:22 pm
La pelicula que carga no tiene nada en el primer frame. Y siguie posicionandose en la derecha.

Te dejo un link www.simbols.es/avencis

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Jun 2009 03:28 pm
Eso es lo que sucede, respóndete a ti mismo la pregunta, cuando le dices esto:

Código ActionScript :

mc._x = (Stage.width - mc._width) /2;


Cuál crees que sea el valor de:

Código ActionScript :

mc._width


Si mc no tiene nada en el primer frame. (que es cuando la intentas posicionar en el onLoadInit)

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 03:42 pm
Mmmm no entiendo, ahora si que va todo correcto, usando

Código ActionScript :

mc._x = (Stage.width - mc._width) /2; 


La pelicula empieza centrada y al hacer el resize sigue centrada, porqué antes no funcionaba?

P.D. Buf perdon pero el actionscript normalmente me es muy complicado. Sera porque no soy programador?

Mil y mil gracias!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Jun 2009 04:08 pm
Debes haber puesto algo en el primer frame, lo que quería que te dieras cuenta era que si no pones nada en el primer frame la película tiene 0px de ancho cuando se termina de cargar, por lo que la siguiente cuenta:

Código ActionScript :

mc._x = (Stage.width - 0) /2; 


Te iba a dar el medio de la pantalla y te iba a situar el borde superior izquierdo del movieClip allí.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 11 Jun 2009 07:35 am
Claro! jajaja. Són esas cosas que tienes delante pero que nunca ves y escojes otros caminos.

Realmente, mil gracias!! me has ayudado un montón.

Suerte!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ago 2009 01:45 am
hola, que buena conversacion, y me uno para agregar una duda que tengo en un sitio que estoy haciendo.
Practicamente yo necesito lo mismo que ... (no recuerdo el nombre de quien mando la duda), o sea, un sitio hecho 100% en flash, en donde el fondo debe tener diagramacion liquida pero la home no.

Un detalle no menor, es que mi fondo tiene un random de imagenes, con el siguiente codigo:
imagenes_mc.loadMovie("fondo" + (1+random(4)) + ".jpg");
Todo eso cargado dentro de un mc vacio llamado "imagenes_mc"

Pero, aqui viene mi diferencia con la propuesta original, es que mi home no es un swf completo que se carga en un mc vacio, sino que se desarrolla todo en la linea de tiempo.

Por lo tanto,alguien sabe como puedo solucionarlo?
Un ejemplo de como necesito que quede mi sitio es la siguiente web:
http://www.topotek1.de/

Desde ya agradezco toda ayuda posible porque necesito resolver esto a la brevedad.

Muchas gracias

Por pablobrei

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Nov 2009 03:02 am
Subo este Topic, dado que por mas que leo no comprendo :P.
Tengo el siguiente Codigo basando 100% en el Codigo del Tutorial.

Código ActionScript :

Stage.align = "TL";
Stage.scaleMode = "noScale";
var miListener:Object = new Object();
miListener.onResize = function() {
   home._height = Stage.height-300;
   home._width = Stage.width-70;
   fondo_ins._y = Stage.height-600;
   mp3._x = Stage.width-210;
};
Stage.addListener(miListener);


Ahora necesito que realize el Resize al automaticamente.

Hasta donde comprendo la logica del proceso:

-Se añade un nuevo listener
-Este listener es de la clase "onload"
-Este listener manda a ejecutar la funcion del onResize.

¿Es esa la base del proceso?
¿Como llamo a la funcion (¿si esta simplemente esta definida como funcion?)?

Esperando respues :p

Por oblivionz

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Nov 2009 05:29 am
El código es correcto y hará que los objetos se muevan al cambiar de tamaño el escenario. Supongo que lo que quieres es que lo haga la primera vez. Si es eso, la razón por la que no se ejecuta la primera ver es porque no ha habido cambio de tamaño en el escenario (no hay resize) así que debes llamar a la función. Bajo la última línea coloca

Código ActionScript :

miListener.onResize();

para que se ejecute la primera vez.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 13 Nov 2009 06:25 pm
Si gracias , con eso funciona.

Pero leyendo tu firma asumo que me llegara reto por esto XD...

Pero cuando le coloco la ultima linea de Codigo que me dices, y le doy propiedades de _height o _width al home el home no me carga :p

El Home es un LoadMovie xD...

Por oblivionz

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 16 Nov 2009 03:30 pm
:cool: q buena paagina me gusta postiar mucho aqui tambien les comento q para una mejor salud tienes q hacer mucho ejercicio y comer saludablemnte para una mejor salud sexual debes de usar Cheap Viagra para mejorar tu energia tambien .

Por terrys

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Nov 2009 06:22 pm

terrys escribió:

:cool: q buena paagina me gusta postiar mucho aqui tambien les comento q para una mejor salud tienes q hacer mucho ejercicio y comer saludablemnte para una mejor salud sexual debes de usar Cheap Viagra para mejorar tu energia tambien .


imagino que alguien se encargará de borrar comentarios publicitarios como ese y bloquear a ese tipo de usuarios...

Por fantasmaweb

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 23 Nov 2009 05:01 pm
@oblivionz, recibí tu pm. Al principio dices que te funciona y más tarde dices que no te carga el home, explica mejor la incidencia y que te ocurre, postea como ha quedado tu código, así sería más fácil que alguien te pueda ayudar.

Un saludo

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Nov 2009 07:50 pm
:cool: :wink: :) also Flash memory is a non-volatile computer storage that can be electrically erased and reprogrammed. It is a technology that is primarily used in memory cards and USB flash drives for general storage and transfer of data between computers and other digital products. It is a specific type of EEPROM (Electrically Erasable Programmable Read-Only Memory) that is erased and programmed in large blocks; in early flash the entire chip had to be erased at once. Flash memory costs far less than byte-programmable EEPROM and therefore has become the dominant technology wherever a significant amount of non-volatile, solid state storage is needed. Example applications include PDAs (personal digital assistants), laptop computers, digital audio players, digital cameras and mobile phones. It has also gained popularity in console video game hardware, where it is often used instead of EEPROMs or battery-powered static RAM (SRAM) for game save data.also let me introduce u to Cheap Viagra use this medication and end with ur ED problem.

Por hurleyx

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ene 2011 11:32 am
Hello everyone,

This is my first time when i came across this site.... In actual way i was finding information about benefits of generic viagra and how to used that for treating ED. Apart from that i was happy to visit this site. I found something new and knowledgeable here. Thanks for sharing.... I am happy to visit again...

Regards
sharon

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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