Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2012, 16:05
martingb
 
Fecha de Ingreso: julio-2007
Mensajes: 15
Antigüedad: 17 años, 4 meses
Puntos: 0
Pregunta Score: Acumulador no funciona

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 original
  1. var barra:score = new score();
  2. barra.x = 80;
  3. barra.y = -200;
  4. barra.name = "barra";
  5. barra.puntajeTXT.text = String(barra.getScore());
  6. addChild(barra);
  7.  
  8. private function seleccionarOpcion(m:MouseEvent):void       {
  9.     var puntaje:Number; // variable para obtener el valor de la opción
  10.     var opt:String; // variable para guardar la opcion elegida
  11.            
  12.     // Realizo el tween sobre el movieclip
  13.     TweenMax.to(MovieClip(m.currentTarget), 0.5, { scaleY: -1 } );
  14.            
  15.     // Oculto el movieclip luego de seleccionarlo
  16.     MovieClip(m.currentTarget).visible = false;
  17.            
  18.     // Remuevo el listener de la opción seleccionada
  19.             MovieClip(m.currentTarget).removeEventListener(MouseEvent.CLICK, seleccionarOpcion);
  20.            
  21.     // le asigno el valor de la opcion a la variable puntaje
  22.     puntaje = Number(m.currentTarget.clipText.text);
  23.            
  24.     // almaceno la opcion seleccionada
  25.     opt = String(m.currentTarget.name).substring(6).toString();
  26.            
  27.     // Guardo la opción para luego varificar el total de respuestas
  28.     opcionesPendientes.push(m.currentTarget.name);
  29.        
  30.     // genero una instancia generarTrivia
  31.     var iniciarTrivia:generarTrivia = new generarTrivia();
  32.     iniciarTrivia.x = 0;
  33.     iniciarTrivia.y = 0;
  34.     iniciarTrivia.name = "iniciarTrivia";
  35.     iniciarTrivia.recibirPuntaje(puntaje);
  36.     iniciarTrivia.recibirOpcion(opt);
  37.            
  38.     // lo agrego al escenario
  39.     addChild(iniciarTrivia);
  40.            
  41.            
  42.     if ( opcionesPendientes.length == 48 ) {
  43.         estado == true;
  44.         (parent.parent as MovieClip).gotoAndStop(7);
  45.        
  46.                 //(parent.parent.parent as MovieClip).scoreText.text = score;
  47.        
  48.                parent.removeChildAt(0);
  49.                
  50.  
  51.             } else {
  52.  
  53.                 estado == false;
  54.             }
  55.  
  56.  
  57. }

En generarTrivia.as tengo

Código vb:
Ver original
  1. public class generarTrivia extends MovieClip
  2.     {
  3.         private var opcion:String;
  4.         private var pregunta:String;
  5.         private var respuesta:Array = [];
  6.         private var resultado:Array = [];
  7.        
  8.         private var respuestas:Array = [];
  9.         private var resultados:Array = [];
  10.         private var radioGroup1:RadioButtonGroup = new RadioButtonGroup("Questions");
  11.         private var xmlLoader:URLLoader = new URLLoader();
  12.         private var xmlData:XML;
  13.         protected var time:Timer;
  14.        
  15.         private var puntaje:Number;
  16.         private var grid:Array = [];
  17.        
  18.        
  19.         public function generarTrivia()
  20.         {
  21.  
  22.             generarVentana();
  23.         }
  24.        
  25.         public function recibirOpcion(op:String):void {
  26.            
  27.             this.opcion = op;
  28.            
  29.         }
  30.        
  31.         public function recibirPuntaje(puntajeOpcion:Number):void {
  32.            
  33.             puntaje = puntajeOpcion;
  34.             trace("Puntaje recibido: " + puntaje);
  35.            
  36.         }
  37.  
  38. private function recibirRespuesta(m:MouseEvent)
  39.         {
  40.            
  41.             var contPre:Array = [this.respuesta, this.resultado];
  42.            
  43.             for (var a:uint = 0; a < contPre[0].length; a++)
  44.             {
  45.                
  46.                 // Valido la respuesta recibida contra los valores del XML
  47.                 if (this.radioGroup1.selection.value == contPre[0][a] && contPre[1][a] == "Correcto")
  48.                 {
  49.                    
  50.                     result_txt.text = "Correcto";
  51.                     var barrias:score = new score();
  52.                     barrias.sendPuntaje(puntaje)
  53.                     trace(barrias.accuScore+puntaje)
  54.                     //(parent.getChildByName("barra") as MovieClip).puntajeTXT.text = score;           
  55.                     break;
  56.                 }
  57.                 else
  58.                 {
  59.                    
  60.                     result_txt.text = "Incorrecto";
  61.                    
  62.                 }
  63.                
  64.             }
  65.            
  66.             agregarTimer();
  67.            
  68.  
  69.            
  70.            
  71.            
  72.         }

y en score.as tengo:

Código vb:
Ver original
  1. public class score extends MovieClip {
  2.        
  3.        
  4.         public var finalScore:Number = 0;
  5.         public var accuScore:Number = 0;
  6.        
  7.        
  8.         public function score() {
  9.             // constructor code
  10.         }
  11.        
  12.         public function sendPuntaje(ptj:Number) {
  13.              accuScore = accuScore + ptj;
  14.              finalScore = accuScore;
  15.         }
  16.        
  17.         public function getScore():Number {
  18.            
  19.             return finalScore;
  20.            
  21.         }
  22.        
  23.     }

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?