Comunidad de diseño web y desarrollo en internet online

Pasando de AS2 (con demasiada cara de AS1?) a AS3

Citar            
MensajeEscrito el 23 Ene 2008 05:05 pm
Hola a todos, estoy desarrollando una página web de un sólo frame en Flash CS3 con AS2 que consta básicamente de unos botones y un componente loader que carga archivos swf dependiendo de qué botón es presionado.

No he avanzado mucho y quiero tratar de hacerlo en AS3.

Mis problemas inmediatos son 2:

1) ¿Cómo puedo pasar valores entre diferentes timelines?
Ahora estoy usando _global.clipToLoad pero en AS3 ya no existe _global.

Tengo un movieclip de mask animado para tapar la pagina anterior y abrir la siguiente. La idea es que el terminar de tapar se llama al swf que tengo en la variable _global.clipToLoad.

2) ¿Cómo puedo inicializar al inicio una sola vez valores de componentes y variables incluyendo la global? Ahora lo estaba haciendo con un onLoad = function () {} que ya no existe. No se cuál es el evento que hay que ver para esto en AS3.

Esto es lo que tengo en timeline principal en el único frame (1):

Código :

var pagina_actual:String;
_global.clipToLoad ="";
sonido = new Sound();

onLoad = function ()
{
   logo_vec._visible=false;
   pagina_actual = "inicio";
   btn_inicio.gotoAndPlay ("_over-out");
   btn_inicio.fondo_clic._alpha = 60;
   btn_inicio.btn_borde._visible = false;
   _global.clipToLoad ="inicio.swf";
   mask_mc.gotoAndPlay("Ingo");
};

function Cargar(clip:String) {
   _global.clipToLoad=clip;
   trace("En Main _global.clipToLoad="+_global.clipToLoad);
   //mainLoader.contentPath=clip;
   mask_mc.gotoAndPlay("Outgo");   
}

function RolloverIn (nombre_boton:String)
{
   eval (nombre_boton + ".btn_borde")._visible = true;
   eval (nombre_boton).gotoAndPlay ("_out-over");
   sonido.attachSound("snd_over");
   sonido.start(0,1000);
   trace ("Entrando en " + nombre_boton);
}
function RolloverOut (nombre_boton:String)
{
   eval (nombre_boton).gotoAndPlay ("_Over-go");
   sonido.stop("snd_over");
   sonido.attachSound("snd_out");
   sonido.start(0,1);
   trace ("Saliendo de " + nombre_boton);
}
function Click (nombre_boton:String)
{
   eval (nombre_boton + ".fondo_clic")._alpha = 60;
   eval (nombre_boton + ".btn_borde")._visible = false;
   sonido.attachSound("snd_clic");
   sonido.start(0,1);
   trace ("Clic en " + nombre_boton);
}
btn_inicio.onRollOver = function ()
{
   if (pagina_actual != "inicio")
   {
      RolloverIn ("btn_inicio");
   }
};
btn_inicio.onRollOut = function ()
{
   if (pagina_actual != "inicio")
   {
      RolloverOut ("btn_inicio");
   }
};
btn_inicio.onRelease = function ()
{
   if (pagina_actual != "inicio")
   {
      RolloverOut ("btn_" + pagina_actual);
      Click ("btn_inicio");
      Cargar("inicio.swf");
      pagina_actual = "inicio";
   }
};
btn_inicio.onReleaseOutside = function (){
   if (pagina_actual != "inicio")
   {
      RolloverOut (btn_inicio);
   }
};

btn_infra.onRollOver = function ()
{
   if (pagina_actual != "infra")
   {
      RolloverIn ("btn_infra");
   }
};
btn_infra.onRollOut = function ()
{
   if (pagina_actual != "infra")
   {
      RolloverOut ("btn_infra");
   }
};
btn_infra.onRelease = function ()
{
   if (pagina_actual != "infra")
   {
      RolloverOut ("btn_" + pagina_actual);
      Click ("btn_infra");
      Cargar("infra.swf");
      pagina_actual = "infra";
   }
};
btn_infra.onReleaseOutside = function (){
   if (pagina_actual != "galeria")
   {
      RolloverOut (btn_infra);
   }
};


btn_servicios.onRollOver = function ()
{
   if (pagina_actual != "servicios")
   {
      RolloverIn ("btn_servicios");
   }
};
btn_servicios.onRollOut = function ()
{
   if (pagina_actual != "servicios")
   {
      RolloverOut ("btn_servicios");
   }
};
btn_servicios.onRelease = function ()
{
   if (pagina_actual != "servicios")
   {
      RolloverOut ("btn_" + pagina_actual);
      Click ("btn_servicios");
      Cargar("servicios.swf");
      pagina_actual = "servicios";
   }
};
btn_servicios.onReleaseOutside = function (){
   if (pagina_actual != "galeria")
   {
      RolloverOut (btn_servicios);
   }
};

btn_galeria.onRollOver = function ()
{
   if (pagina_actual != "galeria")
   {
      RolloverIn ("btn_galeria");
   }
};
btn_galeria.onRollOut = function ()
{
   if (pagina_actual != "galeria")
   {
      RolloverOut ("btn_galeria");
   }
};
btn_galeria.onRelease = function ()
{
   if (pagina_actual != "galeria")
   {
      RolloverOut ("btn_" + pagina_actual);
      Click ("btn_galeria");
      Cargar("galeria.swf");
      pagina_actual = "galeria";
   }
};
btn_galeria.onReleaseOutside = function (){
   if (pagina_actual != "galeria")
   {
      RolloverOut (btn_galeria);
   }
};

btn_contacto.onRollOver = function ()
{
   if (pagina_actual != "contacto")
   {
      RolloverIn ("btn_contacto");
   }
};
btn_contacto.onRollOut = function ()
{
   if (pagina_actual != "contacto")
   {
      RolloverOut ("btn_contacto");
   }
};
btn_contacto.onRelease = function ()
{
   if (pagina_actual != "contacto")
   {
      RolloverOut ("btn_" + pagina_actual);
      Click ("btn_contacto");
      Cargar("contacto.swf");
      pagina_actual = "contacto";
   }
};
btn_contacto.onReleaseOutside = function (){
   if (pagina_actual != "contacto")
   {
      RolloverOut (btn_contacto);
   }
};

Saludos y gracias de antemano.

Por hms2k

6 de clabLevel



Genero:Masculino  

Temuco - Chile

firefox
Citar            
MensajeEscrito el 27 Ene 2008 04:31 am
Gracias a todos los que leyeron y, como suele ocurrir con mis preguntas, me auto respondo:

Ahora tengo una clase aparte que llamo Principal.as y es la que maneja todo.

Este es el codigo:

Código :

package 
{
   import flash.events.Event;
   import flash.events.ProgressEvent;
   import flash.display.*;
   import flash.events.MouseEvent;
   import flash.geom.ColorTransform;

   public class Principal extends MovieClip
   {
      private var menu_array:Array; //arreglo con los botones del menu
      private var colorInfo:ColorTransform;
      private var Fuente:String = "http://www.valentinlozano.net/galeria/images/2003%20Paisaje%20karstico%20I%20oleo%20sobre%20tela%20100x81%20cm_jpg.jpg"; //Fuente: version global de la fuente del UILoader que se llama mcCargador

      public function Principal ()
      {
         init ();
      }
      private function init ()
      {
         trace ("Princial !!");
         menu_array=new Array(btnCuadrado.cuadrado, btnCirculo.circulo); //botones con un texto y un mc de fondo que uso como trigger
         mcMascara.visible=false;
         addMenuEvents ();
         cargar (Fuente);

      }
      private function cargar (fuente:String)
      {
         Fuente=fuente;
         trace ("fuente en cargar="+fuente);
         mcCargador.autoLoad = true;
         mcCargador.scaleContent = true;
         mcCargador.addEventListener (Event.COMPLETE,cargaCompleta);
         mcCargador.addEventListener (ProgressEvent.PROGRESS,progresoCarga);
         mcMascara.visible=true;
         mcMascara.gotoAndPlay ("go");
         mcMascara.addEventListener (Event.ENTER_FRAME, everyFrame);
      }

      private function everyFrame (evento:Event):void
      {
         trace("evento.target.currentLabel="+evento.target.currentLabel);
         trace("mcMascara.currentLabel="+mcMascara.currentLabel);
         if (mcMascara.currentLabel == "tapado")
         {
            trace("fuente en everyFrame: "+Fuente);
            mcCargador.source=Fuente;
            trace("Cargando nueva pagina...");
            mcMascara.removeEventListener(Event.ENTER_FRAME, everyFrame);
         }
      }
      private function progresoCarga (e:ProgressEvent):void
      {
         trace (String(e.target.percentLoaded));
      }
      private function cargaCompleta (e:Event):void
      {
         trace ("Carga Completada");
      }
      private function addMenuEvents ():void
      {
         for (var i:int=0; i < menu_array.length; i++)
         {
            menu_array[i].buttonMode=true;
            //menu_array[i].mouseChildren=false;
            menu_array[i].useHandCursor = true;

            menu_array[i].addEventListener (MouseEvent.MOUSE_DOWN, onMouseApretado);
            menu_array[i].addEventListener (MouseEvent.MOUSE_OVER, onMouseSobre);
            menu_array[i].addEventListener (MouseEvent.MOUSE_OUT, onMouseAfuera);
            menu_array[i].addEventListener (MouseEvent.CLICK, onMouseClick);
            menu_array[i].addEventListener (MouseEvent.ROLL_OUT, onMouseSale);
            menu_array[i].addEventListener (MouseEvent.ROLL_OVER, onMouseEntra);
         }
      }
      private function onMouseApretado (evento:MouseEvent)
      {
         trace (evento.target.name+": Boton apretado");
         cambiarColor (evento,0xEE0000);
      }
      private function onMouseSobre (evento:MouseEvent)
      {
         trace (evento.target.name+": Mouse sobre el boton");
         cambiarColor (evento,0xBBA9E7);
      }
      private function onMouseAfuera (evento:MouseEvent)
      {
         trace (evento.target.name+": Mouse fuera del boton");
         cambiarColor (evento,0xFF97CB);
      }
      private function onMouseClick (evento:MouseEvent)
      {
         trace (evento.target.name+": Click sobre el boton");
         cambiarColor (evento,0xF5F49A);
         trace("onMouseClick: cargar "+ evento.target.name+".swf");
         cargar (evento.target.name+".swf");
      }
      private function onMouseSale (evento:MouseEvent)
      {
         trace (evento.target.name+": El mouse salió del boton");
      }
      private function onMouseEntra (evento:MouseEvent)
      {
         trace (evento.target.name+": El mouse entró al boton");

      }
      private function cambiarColor (evento:MouseEvent, color)
      {
         colorInfo = evento.target.transform.colorTransform;
         colorInfo.color = color;
         evento.target.transform.colorTransform = colorInfo;
      }
   }
}


Si supiera como subir archivos en este foro (¿se puede?) les adjuntaría los SWFs y el Fla.
Saludos.

Por hms2k

6 de clabLevel



Genero:Masculino  

Temuco - Chile

firefox
Citar            
MensajeEscrito el 27 Ene 2008 03:25 pm
Si quieres colaborar ve aqui
Además te da Clablevel ^^

Por CarlosRuminott

1000 de clabLevel

6 tutoriales

 

Mdz, Arg

firefox

 

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