Comunidad de diseño web y desarrollo en internet online

Ayuda con boton y mensajes en AS3

Citar            
MensajeEscrito el 26 Ene 2011 07:29 pm
Hola, soy nuevo en el mundo del Actionscript 3 y lo que quiero realizar es algo simple, pero que no me sale je :lol:. La idea es que al hacer clic en un boton muestre un mensaje, luego al hacer clic de nuevo muestre otro mensaje. Les pongo el codigo de como lo estoy haciendo yo.

Código ActionScript :

package  {
   
   import flash.display.MovieClip;
   import flash.events.MouseEvent;
   
   
   public class Principal extends MovieClip {
      
      
      public function Principal() 
      {
         // constructor code
         boton.addEventListener(MouseEvent.CLICK,clicbtn);
      }
      
      private function clicbtn(e:MouseEvent):void 
      {
         do{
         var contador:int = -1; contador++;}while(contador==-1);
         switch(contador)
         {
            case 0:
               mensaje.text = "Hola";
               break;
            case 1:
               mensaje.text = "¿Como estas?";
               break;
         }
         contador2.text = contador.toString();
         contador++;
      }
   }
   
}
El problema del codigo es que al hacer clic en el boton siempre la variable contador se me reinicia a 0 (Me muestra el mensaje "Hola") y no se como hacer para que la proxima vez que haga clic en el boton la variable pase de 0 a 1 y muestre el "¿Como estas?". Si alguien me puede ayudar se lo agradeceria mucho  :) 

Por Bernabe_22

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2011 08:03 pm
claro por que estas seteando la variable dentro de la función del botón, seria más bien así

Código ActionScript :

package  { 
    
   import flash.display.MovieClip; 
   import flash.events.MouseEvent; 
    
    
   public class Principal extends MovieClip 
   { 
     var contador:int = 0   
       
      public function Principal()  
      { 
         // constructor code 
         boton.addEventListener(MouseEvent.CLICK,clicbtn); 
      } 
       
      private function clicbtn(e:MouseEvent):void  
      { 
         
         switch(contador) 
         { 
            case 0: 
               mensaje.text = "Hola"; 
               break; 
            case 1: 
               mensaje.text = "¿Como estas?"; 
               break; 
         } 
         contador2.text = contador.toString(); 
         contador++; 
      } 
   } 
    
}

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Ene 2011 08:24 pm
Muchisimas gracias por tu respuesta! Funciona perfecto, solo una duda ¿Poner la variable contador luego de la clase principal significa que es una variable Global?

Por Bernabe_22

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2011 08:40 pm
No, no siginifca eso en As2 había algo llamado "_global" pero ya no se usa más, para As3 lo mejor es usar el patrón de diseño Singletone si quieres usar una variable en varias clases

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Ene 2011 09:46 pm
Listo ya entendi! :D Gracias de nuevo por tu ayuda :wink:

Por Bernabe_22

18 de clabLevel



 

firefox

 

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