Comunidad de diseño web y desarrollo en internet online

Problema con posicionamiento de SWF externo

Citar            
MensajeEscrito el 06 Ene 2014 07:36 pm
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!

Por cemansilla

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Ene 2014 02:33 pm
Considera hacer todas las pelis del mismo tamano, centrar las pelis creadas si son mas grandes o usar un plugin distinto, ya que claramente el que usas te centra el contenido

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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