Pergunta

Estou fazendo um teste no ActionScript 2.0. O teste tem 8 perguntas. Cada pergunta tem quatro respostas e cada resposta dá pontos diferentes. Em cada quadro, são duas perguntas para responder e depois passe para os próximos dois e assim por diante.

Meu problema é que preciso atribuir cada resposta a pontos que no final serão calculados e, dependendo do número de pontos, envie o usuário a diferentes mensagens (quadros).

Meu código até agora é o seguinte:

// create an array of all nav buttons in group
var groupinfo:Array = [q1a1, q1a2, q1a3, q1a4];

// create a variable to track the currently selected button
var activebtn:MovieClip;

// doRollOver: start the rollover action or process, 
// unless the button is currently selected
function doRollOver() {
   if (this != activebtn) {
      this.gotoAndPlay(2);
   }
}

// doRollOut: start the rollout action or process, 
// unless the button is currently selected
function doRollOut() {
   if (this != activebtn) {
      this.gotoAndPlay(1);
   } 
} 

// doClick: 1) return previously selected button to normal, 2) show visual 
// indication of selected button, 3) update activebtn
function doClick() {
   activebtn.gotoAndPlay(1);       // return previously selected to normal

   delete this.onEnterFrame;               // stop activity on selected mc

   activebtn = this;                      // update pointer to current selection
}

// assign functions to each event for each button in the group
function init() {
   for (var mc in groupinfo) {  
      groupinfo[mc].onRollOver = doRollOver;
      groupinfo[mc].onRollOut = doRollOut;
      groupinfo[mc].onRelease = doClick;
   }
}

init();

Este código cuida do estado ativo para obter as respostas em cada página. O próximo problema é ao passar pelos quadros, esses estados não são lembrados, mas redefinidos.

///////////////////////////// Arquivos: /////////////////// //////////

http://www.danielwestrom.se/quiz/quiz.html - Demonstração ao vivo

Altere .html para .zip para arquivos de projeto

Obrigado!

Foi útil?

Solução

Não são as melhores práticas, mas use um global para armazenar esses resultados. Uma matriz global, por exemplo.

Você também pode usar uma classe para armazenar todas as suas pontuações, mas, como você tem o código na FLA, eu usaria apenas um global.

Outras dicas

Você precisa ter uma matriz armazenando todas as respostas do usuário. No início de cada quadro, retire as respostas do usuário e coloque a seleção do usuário de volta pelo Gotoandstop (2) do botão do seu coração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top