Nuevamente por aqui con algunos problemas de AS3, pero en paticular tengo uno que al final no entiendo que pasa. Estamos haciendo un juego que nos permita enseñar a recolectar basuras y depositarlas en nuestros contenedores. Aqui les dejo una prueba al juego: http://aulavirtual.udenar.edu.co/proyectojad/prueba/
Hasta el momento estamos bien, sin embargo nos falta programar algunas cosas. Sin embargo tengo un problema que pueden ver en la prueba y es que cuando esta el mensaje de instrucciones y le doy en el boton jugar debería empezar a mover el personaje, pero éste no se mueve con las teclas hasta que le de clic al escenario y allí si arranca. No entiendo este problema ya he hecho muchas cosas e incluso intente un removeListener, pero no lo logre solucionar.
Dejo a disposición el código de este problema:
Clase Admin.as (es el Main):
Código ActionScript :
package com.principal
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class Admin extends MovieClip
{
public static var personaje:Personaje;
public static var mensajeinstr:MensajeInstrucciones = new MensajeInstrucciones();;
public static var habilitateclas:Boolean = false;
// FUNCION CONSTRUCTORA
public function Admin ():void
{
stage.addChild(mensajeinstr);
mensajeinstr.x = 400;
mensajeinstr.y = 150;
mensajeinstr.btnJugar.addEventListener(MouseEvent.MOUSE_DOWN, iniciaJuego);
}
private function iniciaJuego(e:MouseEvent):void
{
stage.removeChild(mensajeinstr);
personaje = new Personaje(stage);
stage.addChild(personaje);
personaje.x = stage.stageWidth /2;
personaje.y = stage.stageHeight /2;
personaje.addEventListener("vercontenedores",muestraElementos);
}
}
}
y esta es la clase personaje.as
Código ActionScript :
package com.principal
{ import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Personaje extends MovieClip {
//variable que permite cambiar al personaje
private var etiqueta:String = "camina";
public var etiquetad:String = "normal";
// variable booleanas que saben las flechas pulsadas
private var pulsadoIzq:Boolean = false;
private var pulsadoDer:Boolean = false;
private var pulsadoAbajo:Boolean = false;
private var pulsadoArriba:Boolean = false;
private var pulsadoTomaLata:Boolean = false;
private var pulsadoLata:Boolean = false;
private var influenciarPeaton:Boolean = false;
//variables que se utilizan para saber el estado
private var cam:Boolean = false;
private var parada:Boolean = true;
//variables que
private var direccion:uint;
// variables del escenario y otros
private var stageRef:Stage;
private var velocidad:Number= 3;
//variables para le timer
private var tiempoParaGirar :Timer = new Timer(5, 0);
private var tiempoParaMover :Timer = new Timer(5, 0);
public var cuentica:Number = 0;
public function Personaje(stageRef:Stage):void {
this.stageRef = stageRef;
stageRef.addEventListener (KeyboardEvent.KEY_DOWN, pulsarTecla);
stageRef.addEventListener (KeyboardEvent.KEY_UP, soltarTecla);
tiempoParaGirar.addEventListener(TimerEvent.TIMER, giraPers);
tiempoParaGirar.start();
tiempoParaMover.addEventListener(TimerEvent.TIMER, moverpers);
}
}
}
Reitero la prueba que tenemos hasta el momento la pueden ver en este link: http://aulavirtual.udenar.edu.co/proyectojad/prueba/, hay pueden observar ese problema en cuanto al MouseEvent y keyboardEvent.
Espero sus consejos hacía la solución ya que todavía me falta conocer mucho de esto, soy un novato más
Atentamente,
Edwin Pacheco
