Comunidad de diseño web y desarrollo en internet online

Que los botones funcionen de forma secuencial

Citar            
MensajeEscrito el 17 Dic 2009 11:38 pm
Estoy haciendo un juego para niños, el típico de dibujar un elemento siguiendo un orden númerico. Aquí podeis ver como me ha quedado: http://img9.xooimage.com/files/9/7/f/cargol-16896ef.swf
el problema es que no se como programar para que si apretamos el boton 15 antes de haber apretado el 10, este no responda y no dibuje la linea. Tal como lo tengo ahora, si apretamos sobre el 90 me completa de una tirada todo el dibujo. Se trataria de completar la secuencia númerica y que solo respondiera si apretamos sobre el número correcto. ¿Es eso posible sin que sea demasiado complicado?
Soy muy, muy novato, así que pido perdón de antemano por mi torpeza.
El codigo que he puesto es el siguiente:

stop();
BOTO05.addEventListener(MouseEvent.MOUSE_UP, comando1);
function comando1(event:MouseEvent) :void {
gotoAndPlay(5);
}


y así sucesivamente para cada uno de los números (botones).
Muchas gracias.

Por Gorky

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2009 02:11 am
Ham Saludos
Bueno no se bien como lo tengas estructurado tu programa. Pero se me ocurre algo, puedes pasar un id a la función del mouse, y usarla en la función que recibe el evento es decir comando1 para que con un switch puedas elegir y permitir reproducir el frame adecuado.

Es decir...
Nota: Necitas una clase llamada Callback para poder pasar parametros con el event.

Aki la agrego :P es muy util, la puedes guardar en un folder llamado test (o lo que quieras siempre y cuando lo llames bien) y es un archivo .as

Código ActionScript :

package test{
public class Callback{      
   public static function create(handler:Function,...args):Function{
         return function(...innerArgs):void{
            handler.apply(this,innerArgs.concat(args));
            }
         }
      }
}


Y el codigo para tu programa así:

Código ActionScript :

package {
   
   import flash.display.*;
   import flash.events.*;
   import flash.media.*;
   import flash.net.*;
   import test.Callback;
   
   public class CaracolX extends Sprite{
      private var _callFun:Function;          
                //Declaro una función para usar el callback
                private var flag:Boolean = false;
                private var flag2:Boolean = false;
                //Declaramos una bandera aunq debería declararse una para cada boton xd
                private var botoo1:Boton1 = new Boton1();
                 //Los demas botones sucesivamente
             public function CaracolX(){
                     //Colocandolos
                       botoo1.x = 100;
                       botoo1.y = 150;
                       addChild(booton1);
                      _callFun=Callback.create(Comando,1)
                       //Creando la funcion y pasandole un id = 1
                      botoo1.addEventListener(MouseEvent.MOUSE_CLICK, _callFun;
                       //Agregando el event listener y creamos la funcion
                    }
                      public function Comando(event:MouseEvent,id:uint){
                         switch(id){
                           case 1: gotoAndPlay(1);
                                      flag1 = true;
                                       break;
                           case 2: if(flag1 == true){
                                     gotoAndPlay(2); 
                                       flag2 = true;
                                      }else{ trace("Debes pasar primero por el numero anterior"); }
                                       break;
                       case 3: //asi sucecivamente, no es la mejor forma pero fue la primera q se me ocurrio xd
                       case 10: // ultimo caso que salgan toda la imagen como querías xd
                       default: trace("Id no valido o no hay case acorde al id");
                             }//Fin switch
                      }
            }//class
   }//package


XD como ya lo dije no es la forma de optimizar ni nada por el estilo, pero ojala te sirva de algo :P
Saludowss xd

Por Evanfallen

31 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2009 12:10 pm
Muchisimas gracias Evanfallen, intento aplicarlo a ver si lo consigo, porque a mi esto me parece chino. Si lo consigo te comento.
Hay algun libro bueno, intuitivo, fácil, bien explicado y encima en español para que un negado en informática pueda aprender algo?

Por Gorky

2 de clabLevel



 

firefox

 

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