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 original
var 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 original
public 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 original
public 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?