Hola,
Estoy haciendo un juego en AS3 de una trivia y como obviamente sabemos debe tener un score en donde vaya marcando los valores, al respecto tengo lo siguiente:
En la clase: grilla.as
Código vb:
Ver originalvar barra:score = new score();
barra.x = 80;
barra.y = -200;
barra.name = "barra";
barra.puntajeTXT.text = String(barra.getScore());
addChild(barra);
private function seleccionarOpcion(m:MouseEvent):void {
var puntaje:Number; // variable para obtener el valor de la opción
var opt:String; // variable para guardar la opcion elegida
// Realizo el tween sobre el movieclip
TweenMax.to(MovieClip(m.currentTarget), 0.5, { scaleY: -1 } );
// Oculto el movieclip luego de seleccionarlo
MovieClip(m.currentTarget).visible = false;
// Remuevo el listener de la opción seleccionada
MovieClip(m.currentTarget).removeEventListener(MouseEvent.CLICK, seleccionarOpcion);
// le asigno el valor de la opcion a la variable puntaje
puntaje = Number(m.currentTarget.clipText.text);
// almaceno la opcion seleccionada
opt = String(m.currentTarget.name).substring(6).toString();
// Guardo la opción para luego varificar el total de respuestas
opcionesPendientes.push(m.currentTarget.name);
// genero una instancia generarTrivia
var iniciarTrivia:generarTrivia = new generarTrivia();
iniciarTrivia.x = 0;
iniciarTrivia.y = 0;
iniciarTrivia.name = "iniciarTrivia";
iniciarTrivia.recibirPuntaje(puntaje);
iniciarTrivia.recibirOpcion(opt);
// lo agrego al escenario
addChild(iniciarTrivia);
if ( opcionesPendientes.length == 48 ) {
estado == true;
(parent.parent as MovieClip).gotoAndStop(7);
//(parent.parent.parent as MovieClip).scoreText.text = score;
parent.removeChildAt(0);
} else {
estado == false;
}
}
En generarTrivia.as tengo
Código vb:
Ver originalpublic class generarTrivia extends MovieClip
{
private var opcion:String;
private var pregunta:String;
private var respuesta:Array = [];
private var resultado:Array = [];
private var respuestas:Array = [];
private var resultados:Array = [];
private var radioGroup1:RadioButtonGroup = new RadioButtonGroup("Questions");
private var xmlLoader:URLLoader = new URLLoader();
private var xmlData:XML;
protected var time:Timer;
private var puntaje:Number;
private var grid:Array = [];
public function generarTrivia()
{
generarVentana();
}
public function recibirOpcion(op:String):void {
this.opcion = op;
}
public function recibirPuntaje(puntajeOpcion:Number):void {
puntaje = puntajeOpcion;
trace("Puntaje recibido: " + puntaje);
}
private function recibirRespuesta(m:MouseEvent)
{
var contPre:Array = [this.respuesta, this.resultado];
for (var a:uint = 0; a < contPre[0].length; a++)
{
// Valido la respuesta recibida contra los valores del XML
if (this.radioGroup1.selection.value == contPre[0][a] && contPre[1][a] == "Correcto")
{
result_txt.text = "Correcto";
var barrias:score = new score();
barrias.sendPuntaje(puntaje)
trace(barrias.accuScore+puntaje)
//(parent.getChildByName("barra") as MovieClip).puntajeTXT.text = score;
break;
}
else
{
result_txt.text = "Incorrecto";
}
}
agregarTimer();
}
y en score.as tengo:
Código vb:
Ver originalpublic class score extends MovieClip {
public var finalScore:Number = 0;
public var accuScore:Number = 0;
public function score() {
// constructor code
}
public function sendPuntaje(ptj:Number) {
accuScore = accuScore + ptj;
finalScore = accuScore;
}
public function getScore():Number {
return finalScore;
}
}
El tema es el puntaje va y viene lo mas bien, el valor de la pregunta es el correcto el tema es que la variable accuScore no esta acumulando el score para ir mostrandolo luego de cada pregunta en base a las respuestas que de el usuario, a alguien se le ocurre que puede estar pasando?