Foros del Web » Creando para Internet » Flash y Actionscript »

Problema con posicionamiento de SWF externo

Estas en el tema de Problema con posicionamiento de SWF externo en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/01/2014, 13:22
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 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!
  #2 (permalink)  
Antiguo 07/01/2014, 11:31
Avatar de Kottore  
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Problema con posicionamiento de SWF externo

Hola cemansilla.

Podría apoyarte en tu problema pero vamos por partes.

En la parte de Link3, las letras rojas están contenidas en el swf externo?
y ese cuadro negro qué rollo? se supone que es la medida del stage del swf correspondiente al link3?
Y si es la medida, por qué las letras rojas están fuera?

Saludos.
__________________
これは僕のウェブだよね。
  #3 (permalink)  
Antiguo 08/01/2014, 11:10
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Problema con posicionamiento de SWF externo

Cita:
Iniciado por Kottore Ver Mensaje
Hola cemansilla.

Podría apoyarte en tu problema pero vamos por partes.

En la parte de Link3, las letras rojas están contenidas en el swf externo?
y ese cuadro negro qué rollo? se supone que es la medida del stage del swf correspondiente al link3?
Y si es la medida, por qué las letras rojas están fuera?

Saludos.
Hola, perdón por la demora en la respuesta pero no me llegó notificación y eso que estoy subscripto al tema, en fin, paso a contestar.

El texto "Link 3" es parte del SWF externo, junto al marco negro que se ve y al cuadrado grande que sobresale.

El cuadro ese que sobresale es una prueba que hice, forma parte del SWF externo que tiene el texto Link 3, como expliqué anteriormente. Lo puse así desfasado y sin enmascarar a propósito. La idea es que los distintos SWF estén enmascarados, solo sería visible el área blanca que se vé acá por ejemplo:



Saludos y gracias, cualquier ayuda será bienvenida.

Etiquetas: as, externo, flash, posicionamiento, swf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:28.