Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2014, 13:22
Avatar de cemansilla
cemansilla
 
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 8 meses
Puntos: 6
Problema con posicionamiento de SWF externo

Buenas, estoy trabado con un problemilla y no encuentro solución, a ver si me pueden dar una mano.

Estoy usando cargas externas para las distintas secciones del sitio. El problema viene cuando cargo un SWF que tiene medidas mayores, el contenedor (Loader) se desplaza para quedar centrado.

Pongo imágenes para ilustrar lo que digo:

Acá lo que dice "Link 1" es el SWF cargado externamente, este está OK.


Ahora muestro otra sección, esta carga mal:


Este es el SWF que se carga en la imágen anterior. Vean que puse un cuadrado negro que se sale del canvas para probar:


En esta otra se ve otro desplazamiento, en este caso solamente vertical. Tiene contenido enmascarado (donde está el cuadro rojo que agregué con Photoshop), por lo que hacer esto no es solución:


Estoy usando Tweenlite (http://www.greensock.com/tweenlite/) para las transiciones con el Plugin "TransformAroundCenterPlugin" para hacer un zoom in / zoom out con escalado desde el centro.

Código:
package com 
{
	import flash.display.Loader;
	import flash.display.Sprite;	
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.events.ProgressEvent;
	import flash.net.URLRequest;
	import flash.utils.setTimeout;
	
	import com.util.Variables;
	
	import com.greensock.*;
	import com.greensock.easing.*;
	import com.greensock.plugins.*;
	
	public class Main extends Sprite 
	{
		private var seccion_loader:Loader;
		private var seccion_req:URLRequest;

		public function Main() 
		{
			addEventListener(Event.ADDED_TO_STAGE, init);
			
			TweenPlugin.activate([TransformAroundCenterPlugin]);
		}

		private function init(e:Event):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);

			// CONTENEDOR DE SECCIONES
			seccion_loader = new Loader();
			addChild( seccion_loader );
			seccion_loader.x = 25;
			seccion_loader.y = 125;

			seccion_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, cargaProceso);
			seccion_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, cargaCompleta);

			// LISTENERS MENU
			menu.link_1.addEventListener(MouseEvent.CLICK, link_1);
			menu.link_2.addEventListener(MouseEvent.CLICK, link_2);
			menu.link_3.addEventListener(MouseEvent.CLICK, link_3);
			menu.link_4.addEventListener(MouseEvent.CLICK, link_4);
			menu.link_5.addEventListener(MouseEvent.CLICK, link_5);
			menu.link_6.addEventListener(MouseEvent.CLICK, link_6);

			// SECCION_INICIAL
			lanzarLoaderInicial();
		}

		private function cargaCompleta(e:Event):void 
		{
			/*
			var target_mc:Loader = e.currentTarget.loader as Loader;
			target_mc.y = 125;
			trace(target_mc.y);
			*/
			zoomIn();
		}

		private function zoomOut(seccion:String):void {
			if (seccion_loader.content) {
				TweenLite.to(seccion_loader, 0.3, { transformAroundCenter:{scaleX:0, scaleY:0}, ease: Back.easeIn, onComplete: lanzarLoader, onCompleteParams: [seccion] } );
			}else {
				lanzarLoader(seccion);
			}
		}

		private function lanzarLoaderInicial():void 
		{
			seccion_req = new URLRequest(Variables.SECCION_X_DEFECTO);

			seccion_loader.load(seccion_req);
		}
		
		private function lanzarLoader(seccion:String):void 
		{
			seccion_req = new URLRequest(seccion);

			seccion_loader.unload();
			seccion_loader.load(seccion_req);
		}
		
		private function zoomIn():void {
			TweenLite.to(seccion_loader, 0.3, { transformAroundCenter: { scaleX:1, scaleY:1 }, ease: Back.easeOut, onComplete:acomodar } );
		}

		private function acomodar():void {
			//seccion_loader.y = Variables.Y_VENTANA;
		}
		
		private function cargaProceso(e:ProgressEvent):void 
		{
			var porcentaje:Number = Math.round(e.bytesLoaded / e.bytesTotal * 100);
		}

		private function link_1(e:MouseEvent):void{ zoomOut("link_1.swf"); }
		private function link_2(e:MouseEvent):void{ zoomOut("link_2.swf"); }
		private function link_3(e:MouseEvent):void{ zoomOut("link_3.swf"); }
		private function link_4(e:MouseEvent):void{ zoomOut("link_4.swf"); }
		private function link_5(e:MouseEvent):void{ zoomOut("link_5.swf"); }
		private function link_6(e:MouseEvent):void{ zoomOut("link_6.swf"); }
	}
}
Cualquier ayuda que me puedan dar es bienvenida, mientras sigo haciendo pruebas.

Saludos!