Comunidad de diseño web y desarrollo en internet online

Problemas con AS3 y Tween

Citar            
MensajeEscrito el 05 Jul 2007 02:00 pm
Hola, hace un sitio con Flash CS3, en AS3 y toda la animación mediante programación.
Ahora bien, uso varias veces al mismo tiempo la clase Tween, digamos unas 15 veces al mismo tiempo.

El tema es que cuadno cargo el sitio, muchas veces las animaciones no se completan. O sea, por alguna razon, algunas se cortan por la mitad. Actualizando la pagina a veces funciona bien, y otras veces son otras las animaciones que no se comletan, o sea no son siempre las mismas.

Por si quieren ver el sitio: www.puertocaramelo.com.ar

Bueno, a ver si a alguien se le ocurre que puede estar pasando !

muchisimas gracias :D

adios ^^

Por maurole

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jul 2007 02:48 pm
¿Puedes mostrar el código que utilizas?

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 05 Jul 2007 08:52 pm
Si, bien, tengo varias clases. Principalmente esta la clase del sitio y la clase de los botones. Aca pongo la clase del sitio con lo mas relevante, de cualquier manera esta todo hecho asi, asiq si hay algo mal esta igual en las otras clases:

Código :

package {
   
   import flash.display.BitmapData;   
   //(... hago todos los imports)

   public class Site extends MovieClip 
   {
      //guardo una referencia a los botones y las ventanas para poder manejarlos desde aca
      private var btnContacto:MovieClip = null;
      private var btnServicios:MovieClip = null;      
      private var btnAgenda:MovieClip = null;      
      private var btnSalon:MovieClip = null;   
      private var btnVolver:MovieClip = null;
      private var activeWindow:MovieClip = null;
      //algunas constantes de confirguracion      
      public static var BUTTON_TWEEN_DURATION = 2;
      //(... mas constantes...)
      
      public function Site ()  
      {
         //esto lo hago porque el swf es cargado por otro que hace de preloader
         this.addEventListener("addedToStage",initScene);
      }
      //aca empieza el tema: agrego los elementos al stage y los muestro
      public function initScene(e:Event):void{

         var tablon:MovieClip = new Tablon(Site.URL_TABLON);
         tablon.x = 441;
         tablon.y = - tablon.height;
         addChild(tablon);         
         this.showObject(tablon,tablon.y,0,1);         
         
         
         //////////////////////
         
         var nube3:MovieClip = new NubeTres();
         nube3.x = 20;
         nube3.y = - nube3.height;
         addChild(nube3);
         this.showObject(nube3,nube3.y,0,Site.ELEMENTS_TWEEN_DURATION);            
         
         ////////////////////// BUTTONS
         
         this.createButtons();
         setTimeout(this.showButtons,Site.ELEMENTS_TWEEN_DURATION * 1000);
         
      
         /////////////////////////////////////////
         
         var nube1:MovieClip = new NubeUno();
         nube1.x = 453;
         nube1.y = -nube1.height;
         addChild(nube1);
         this.showObject(nube1,nube1.y,0,Site.ELEMENTS_TWEEN_DURATION);         
         
         var nube2:MovieClip = new NubeChica();
         nube2.x = 253;
         nube2.y = - nube2.height;
         addChild(nube2);
         this.showObject(nube2,nube2.y,0,Site.ELEMENTS_TWEEN_DURATION);
         
         var musicBox:MovieClip = new SiteMusicBox();
         this.addChild(musicBox);
         musicBox.show(462);
         
         ///////////// VOLVER BUTTON
         
         this.btnVolver = new VolverButton();
         this.btnVolver.addEventListener(MouseEvent.CLICK,volverClick_handler);         
         this.addChild(this.btnVolver);

         var mouse:MovieClip = new MouseTrail();
         addChild(mouse);                  
         
         var logoSitio:MovieClip = new Logo();
         logoSitio.x = 0;
         logoSitio.y = -logoSitio.height;
         this.addChild(logoSitio);

         this.showObject(logoSitio,logoSitio.y,0,Site.ELEMENTS_TWEEN_DURATION);         
         
         
      }
      
      public function createButtons():void
      {
         this.btnContacto = new ButtonContacto();
         addChild(this.btnContacto);
         this.btnContacto.addEventListener(MouseEvent.CLICK,this.buttonClick_hanlder);
         
         this.btnServicios = new ButtonServicios();
         addChild(this.btnServicios);
         
         this.btnSalon = new ButtonSalon();
         addChild(this.btnSalon);
         this.btnSalon.addEventListener(MouseEvent.CLICK,this.buttonClick_hanlder);         
         
         this.btnAgenda = new ButtonAgenda();
         addChild(this.btnAgenda);
      }
      
      public function showButtons():void
      {
         if(this.activeWindow is SiteWindow)
            this.removeChild(this.activeWindow);
            
         this.btnContacto.show(33);
         this.btnServicios.show(173);         
         this.btnAgenda.show(272);         
         this.btnSalon.show(468);         
      }
      
      public function hideButtons():void
      {
         this.btnContacto.hide();
         this.btnServicios.hide();
         this.btnSalon.hide();
         this.btnAgenda.hide();
         
      }
      
      public function buttonClick_hanlder(e:Event)
      {
         this.hideButtons();         
         var window:String;
         if(e.target is ButtonContacto)
            window = "contacto";
         if(e.target is ButtonSalon)
            window = "salon";
            
         setTimeout(showWindow,Site.BUTTON_TWEEN_DURATION * 1000,window);

      }
      
      public function showWindow(arg:String)
      {
         switch(arg)
         {
            case "contacto":
               this.activeWindow = new WindowContacto(Site.URL_CONTACTO);
//               this.btnContacto.show(470,-50);
               break;
            case "salon":
               this.activeWindow = new WindowSalon(Site.URL_FOTOS);
               break;
            default:
               break;
         }
         this.activeWindow.show(8);
         this.btnVolver.show(500);
         this.addChildAt(this.activeWindow,8);            
      }
      
      private function volverClick_handler(e:Event)
      {
         this.activeWindow.hide();
         this.btnVolver.hide();
         setTimeout(showButtons,Site.BUTTON_TWEEN_DURATION * 1000);
      }
      
      //bien, aca esta el meollo del asunto: como todas las animaciones son parecidas, hice este metodo al q llamo para hacer aparecer los objetos
      public function showObject(obj:MovieClip,startValue:Number,finishValue:Number,duration:Number)
      {
         var myTween:Tween = new Tween(obj, "y", Strong.easeOut, startValue, finishValue, duration, true);
      }
      
   }

}


bien, espero que eso ayude a desentrañar este misterio :S

gracias igualmente !!

saludos!

Por maurole

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Sep 2007 05:49 pm
A mi me pasa exactamente igual, uso varias veces movimientos con la clase Tween y a veces se paran o a veces si terminan.

Por dashpaul

6 de clabLevel



Genero:Masculino  

Torreón

firefox

 

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