Mi asunto es el siguiente, hice tres ejemplos para poder explicarme lo mas claro posible. Con los dos primeros no hay ningún problema, el problema está en el tercer ejemplo, donde intento combinar los dos primeros… aquí voy:
Ejemplo 1: click para ver.
Esto sería un flash donde uso Stage.scaleMode = "noScale"; para que no se escale, y el movieClip area_mc esta centrado en el Stage. El x-y "cero" de area_mc esta en la esquina izquierda arriba.
Código:
Código :
Stage.scaleMode = "noScale"; Stage.align = "TL"; area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; var listenerStage = new Object(); listenerStage.onResize = function() { area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; }; Stage.addListener(listenerStage);
Ejemplo 2: click para ver.
Aquí la diferencia está en Stage.scaleMode = "showAll"; para que se cambie el tamaño sin perder las proporciones del diseño. No asigno Stage.align para que esté centrado de en navegador.
Código:
Código :
Stage.scaleMode = "showAll"; area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; var listenerStage = new Object(); listenerStage.onResize = function() { area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; }; Stage.addListener(listenerStage);
Ejemplo 3: click para ver.
En el ejemplo 2 el problema es que si el usuario achica mucho el navegador se achica mucho la película, entonces pensé en usar una condicional, para que si el Stage es menor a 640 x 480 (por ejemplo) que la película deje de escalarse. Y bueno... la verdad es que no funciona como esperaba...
Código:
Código :
if (Stage.width<640 || Stage.height<480) { Stage.scaleMode = "noScale"; Stage.align = "TL"; } else if (Stage.width>=640 || Stage.height>=480) { Stage.scaleMode = "showAll"; } area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; var listenerStage = new Object(); listenerStage.onResize = function() { area_mc._y = Stage.height/2-area_mc._height/2; area_mc._x = Stage.width/2-area_mc._width/2; if (Stage.width<640 || Stage.height<480) { Stage.scaleMode = "noScale"; Stage.align = "TL"; } else if (Stage.width>=640 || Stage.height>=480) { Stage.scaleMode = "showAll"; } }; Stage.addListener(listenerStage);
Si ven el tercer ejemplo, prueben achicar y agrandar el navegador para ver, que no pasa nada parecido a lo que buscaba, y no me doy cuenta donde le estoy errando. Como ven la condicional también esta dentro del listener para que esta sea evaluada al cambiar de tamaño el Stage.
Ya he probado muchas formas de escribirlo y nunca pasa lo que quiero. Espero alguien pueda ayudarme a solucionar esto. Espero haberme explicado bien.
Muchas gracias.