Cristalab

Orientandose en Flash con Diagramación Líquida

Por: D3N14M + 05.03.2007

Bueno, no se si soy el único que ha tenido este problemita, pero como me he estado partiendo la cabeza un par de días para intentar resolverlo y todos los gurus de flash que ponían tutoriales no tocaban puntualmente el tema (será que era demasiado obvio y yo soy un newbie Riendo ).

Entonces, de lo que quiero hablarles pequeños es "Como demonios se yo donde esta el punto 0 de una película flash cuando estoy empleando un Stage.scaleMode = "noScale";" ?

Bien, lo primero resolver un pequeño misterio, flash, cuando le ordenamos que ajuste el scaleMode sea noScale (es decir que no distorcione los tamaños de los mc), tiende a centrar la película. Por ende, si nuestra película mide 500 pixeles de ancho, cuando el Stage (o FlashPlayer, como quieran decirle) mide 600 pixeles de ancho, el punto 0 de la película se encuentra en -50. Esto hace que si por ejemplo ajustasemos el mc que usamos de fondo de la web, se "desplace" en la pantalla.

Entonces, existen miles de formas para resolver esto, la forma rápida y a prueba de idiotas (usease yo) es esta:

Código :

Stage.scaleMode = "noScale";
function posicionar(){
   ceroX = (1000 - Stage.width)/2;
   ceroY = (560 - Stage.height)/2;
   cont._x = ceroX + 5;
   cont._y = ceroY + 5;
   cont._width = Stage.width - 10;
   cont._height = Stage.height - 10;
}
var stageListener:Object = new Object();
stageListener.onResize = function(evt:Object) {
   posicionar();
}
Stage.addListener(stageListener);
posicionar();


Como se puede ver, le asigno a cont (que es un recuadro gris) la posición basandome en las variables ceroX y ceroY, de forma que no importa que tanto se distorcione o varíe el Stage, su posición siempre será la del punto cero que ve el usuario y no el original (que andará por China o Estambul Riendo ).

Deniam

P.D.: En el ejemplo se ve que a los valores sumo o resto 5 o 10, esto es para que el recuadro gris deje un margen de 5 pixeles.

Etiquetas actionscript hack

Comentarios | Enviar un comentario
De hecho eso no es necesario, con:
Stage.align = "TL";

Ya lo tienes
Por: Hector_blog
Cierto con TL el punto cero sera el mismo de siempre pero vale la explicación
Por: GersonM_blog
quiero apreder mas sobre flash y deseo adquir algunos codigos
Por: Angel polanco_blog
este tutorial es mas valioso de lo que muchos piensan. yo tuve el mismo problema cuando comence a trabajar en un entorno flash al 100%. el problema mas frecuente es que cada usuario tiene una resolucion de pantalla diferente, ya sea por la resolucion de OS o del browser. por lo cual uno tiene que usar estos metodos para poder determinar las 4 "puntas" de la pantalla si es que se desea aplicar contenidos que se adapten dinamicamente a esta. yo por lo general tiendo a centrar el contenido de la pagina, pero si el tamaño de pantalla es inferior al contenido, genero un scrollbar, y que el contenido deje de estar centrado para pasar a estar "anclado" a la parte de arriba. lo que mas me ha costado fue una aplicacion de "cartas" que si uno "resizeaba" (?) la pantalla estas se ordenaban de forma tal que no desaparezcan partes, como suele suceder en incluso muchas paginas de empresas multinacionales.
el anclaje "TL" como dicen... no sirve para lo que estoy estableciendo. por que si bien es mas facil obtener el punto x0 y0 , no sirve de nada si no podemos obtener los otros 3 valores. Ancles donde Ancles, siempre tendras que usar programacion para la diagramacion liquida... yo recomiendo siempre un anclaje "T" para, en ultima instancia cuando la pantalla es mas chica que el contenido, generar ese scrollbar. una ves echo esto, central el contenido, o anclarlo donde quieras es simplemente añadir una o dos lineas de codigo...
Por: lookout_blog
por favor podríamos seguir con el tema????
Es más que interesante.
Si pudierais poner enlaces a más explicaciones seria estupendo, ya que lo único que encuentro son discusiones sobre el tema pero no arrojan ni una linea de explicación sobre como hacerlo bien. por que yo se que esto se puede hacer y bien y si no miren esta página:
http://www.trisquel.com

o esta otra:
http://www.adobe.com/uk/creativefreedom/

un saludo y a seguir evolucionando internet
Por: tatolc_blog
j0'
Por: 8jho_blog
Hola no se si este tema esta cerrado pero me gustaria heceros un pregunta a todos a quellos qe me puedan decir algo, en fin ayudarme.

El problema es que la imagen que esta en el fondo se adapta al stage pero distorssionada, me guataria que se adaptara pero sin distorsionar.

Este me redimensiona correctamente la imagen del fondo:
http://opcion1.net/luis/escalarFondo.swf

Este me lo adapta todo al stage, pero la imagen la deforma (cambia el stage)
http://opcion1.net/luis/home.swf

Me gustaria que se adaptara todo al stage, pero que la imagen no se distorsionara.

Creo que el problema esta en Stage.align = "TL";

Me podrias echar una mano?
Gracias de nuevo
Por: apuerta_blog
Como no se nada de código perdonadme...
El código de D3N14M, vamos para que 0 sea siempre 0 y poder colocar mejro en mc´s las cosas... donde se pone éste código???
llevo dias leyendo y leyendo y no pillo nada, un librin online no hay? Triste salu2
Por: SaSuK3_blog
Buenas. Oye, apuerta, me gustaría hacerte una pregunta (y a los demás si saben la respuesta).
En el segundo ejemplo que has puesto (http://opcion1.net/luis/home.swf), cómo consigues el menú de abajo, que al redimensionar la ventana se mantiene abajo??
Y el fondo del menú?
Este efecto lo he visto en varias webs y no lo consigo, a ver si me podéis ayudar.
Gracias de antemano...
Por: d:e:m_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.