..:: MX Studio Fóruns ::..: Jogo Quizz - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Jogo Quizz Ajuda

#1 User is offline   Gisa Iagami 

  • Group: Membros
  • Posts: 164
  • Joined: 12-November 04

  Posted 22 June 2006 - 01:38 PM

Galera estou montando um game estilo quizz. Segui um tutorial da net (não foi o daqui) e até agora deu tudo certinho. XML, AS. So que preciso incrementar algumas coisas entao vim ate vcs pra tentar aprender wink.gif
Vamos la... Vou apresentar aqui a tela, O meu xml e o meu AS. Assim ja serve pra quem quer aprender tb ver o q fiz mais ou menos.
Tela:
user posted image
user posted image

XML:
CODE

<quiz>
<questao>
 <pergunta>Qual a cor da pantera famoso desenho antigo</pergunta>
 <alternativa>Verde</alternativa>
 <alternativa certa="1">Rosa</alternativa>
 <alternativa>Azul</alternativa>
 <explicacao>A pantera cor de rosa é um desenho de 1980</explicacao>
</questao>
<questao>
 <pergunta>Qual o nome do Amigo do Batman</pergunta>
 <alternativa certa="1">Robin</alternativa>
 <alternativa>Chaves</alternativa>
 <alternativa>Batgirl</alternativa>
 <explicacao>O robin foi o primeiro companheiro do Batman. Batgirl enrou depois ao grupo</explicacao>
</questao>
</quiz>

AS:

CODE

//Importe a classe Alert, para exibir o resultado do quiz no final.
import mx.controls.Alert;
//Importe a classe checkbox.
var quiz:XML = new XML();
//Essa propriedade ignora os espaços em branco do XML.
quiz.ignoreWhite = true;
//O método load recebe como argumento a url do arquivo que será carregado
quiz.load("quiz.xml");
//Essa vai receber a quantidade de perguntas certas
var corretas:Number = 0;
// Mostra a pergunta atual do quiz
var perguntaAtual:Number= 0;
//Variável que vai receber o checkBox que for marcado;
var escolha;
//Quantidade total de perguntas do quiz
var totalPerguntas:Number;
//O evento onLoad da class Loadvars vai ser executado quando todos os dados tiverem sido recebidos.
quiz.onLoad = function(ok:Boolean):Void{
//Condicional if, para verificar se os dados foram recebidos com sucesso.
if(ok){
 //Acesse e resgate a quantidade de nodes do XML, que é o valor da quantidade de perguntas
 totalPerguntas = this.firstChild.childNodes.length;
 //Execute a função montaQuiz, que será criada logo mais abaixo, e passe como argumento da função
 //O primeiro node do XML contendo a primeira pergunta;
 montaQuiz(this.firstChild.childNodes[0]);
};
};
//Função montaQuiz, responsável por exibir a pergunta, e recebe como argumento um node do XML para
//preencher os componentes
function montaQuiz(xmlNodes){
//Aqui irei usar a propriedade text, do campo de texto qtd, para exibir a quantidade de perguntas, e a pergunta atual
qtd.text = ' '+ parseInt(perguntaAtual+1) + " / "+ totalPerguntas;
//Exibe a pergunta no campo de texto
perg.text = xmlNodes.childNodes[0].childNodes;
//Loop for usado para preencher os componentes de checkbox
for(var i =1,x=xmlNodes.childNodes.length;i<x;i++){
 //Aqui ele deixa deselecionado todas as vezes que ele executar a função
 this['r'+i].selected = false;
 //Atribua a propriedade label com os valores vindos do XML. O label é o que será exibido no radiobutton
 this['r'+i].label = xmlNodes.childNodes[i].childNodes;
 //A propriedade data é a que iremos usar para saber qual é a alternativa certa
 this['r'+i].data  = xmlNodes.childNodes[i].attributes.certa;
 //o Evento clickHandler acontece quando você clica em qualquer dos radiobuttons
 this['r'+i].clickHandler = function(){
  //A variável escolha recebe o valor de this, que corresponde ao radiobutton clicado
  escolha = this;
 };
};
};
/*Função resposta é responsável por verificar a resposta à pergunta do quiz. Se estiver correta, ele incrementa a variável
corretas.
*/
function resposta(marcado):Void{
//Se o checkbox passado tiver a propriedade data diferente de undefined
if(marcado.data != undefined){
 //Incremente a variável corretas.
 corretas++;
};
};
//Função habilitaperguntas recebe como argumento da função um valor booleano, que vai definir se as
//alternativas e o botão de responder vão ficar ativas ou não
function habilitaperguntas(v:Boolean):Void{
//Loop for para setar a propriedade enabled dos componentes de checkbox, de acordo com o argumento recebido da função
for(var i =1;i<=4;i++){
 eval('r'+i).enabled = v;
};
resp.enabled = v;
};
function mostraResultado(){
//chamando a função habilitaperguntas e passando true no argumento,
//os componentes de ckeckbox e o button ficarão habilitados para clicar
habilitaperguntas(false);
//Cálculo percentual dos acertos do quiz
var percentual = (corretas*100)/totalPerguntas;
//Variável t é o que será exibido no título da mensagem de alerta. Escrevi algumas palavras, e concatenei com as variáveis corretas e percentual

var t = "Você acertou " + corretas + " de " +totalPerguntas + " percentual de acerto: " +percentual + "% ";
//No método estático show, da classe Alert, vamos passar alguns argumentos. São eles:
/*
mensagem -> Vai receber a mensagem que será exibida na janela de alert
título -> Vamos passar o valor da variável t
label botão -> Vai receber o valor da propriedade okLabel, com isso podemos definir um novo valor para a variável okLabel e com isso mudar o texto do checkbox
escopo onde se encontra o objeto Alert que para o nosso caso é usei this
e por fim, a função de calback que ele vai executar quando o usuário clicar no botão do Alert
*/
Alert.show("Você deseja refazer o Desafio?",t, Alert.okLabel = "Refazer", this,alertclik);
};
resp.clickHandler = function(){
//A condicional abaixo verifica se a peguntaAtual é menor que totalPerguntas menos 1. Caso seja verdadeiro, ele
//irá chamar a função resposta, incrementar a variável da pergunta atual, e chamar a função montaQuiz, com a próxima pergunta
//Executa a função resposta passando como argumento a variável escolha, que recebe o checkbox marcado
resposta(escolha);
//Zerando a variável escolha
escolha='';
if(perguntaAtual < totalPerguntas-1){

 //incrementando a variável perguntaAtual, para passar para a próxima pergunta;
 perguntaAtual++;
 //Executa a função montaQuiz, para exibir a pergunta de acordo com a variável perguntaAtual
 montaQuiz(quiz.firstChild.childNodes[perguntaAtual]);
}else{
 //Executa a função mostraResultado.
 mostraResultado();
};
};
//A função alertclik trata-se de um callback, que será executado quando o botão na mensagem de alerta for clicado
alertclik = function(){
//chamando a função habilitaperguntas e passando true no argumento,
//os componentes de checkbox e o button ficarão habilitados para clicar
habilitaperguntas(true);
//Zerando o valor da variável perguntaAtual, para reiniciar o quiz.
perguntaAtual = 0;
//Zerando o valor da variável corretas, para reiniciar o quiz.
corretas = 0;
//Chama a função monta quiz, informando o primeiro node do XML para ser exibida a primeira pergunta;
montaQuiz(quiz.firstChild.childNodes[perguntaAtual]);
};


Bom vamos la, o que preciso. 1- Incrementar a explicacao. Eu que coloquei esta linha no xml. Seria o seguinte. Ele da responder. Aparece a explicação e se ele acertou ou nao. E um botao proxima pergunta.
Um Score. Apresentando os pontos q ele tem
E tempo.
Eu tentei colocar a linha:
CODE

//tentativa de inserir explicacao
expl.text = quizXML.firstChild.childNodes[pag].childNodes;


Pra ele fazer a situação 1 mas não consegui
Obrigada desde ja pela ajuda
0

#2 User is offline   evertonfraga 

  • Group: Membros
  • Posts: 6
  • Joined: 11-August 06

Posted 11 August 2006 - 11:05 AM

ai, ai! lá em casa eu fiz algumas coisas que você quer !

o lance do tempo eu resolvi com o componente ProgressBar.. ficou até bonitinho ;D

o lance da explicação, vê se num é desse jeito:
expl.text = quizXML.firstChild.childNodes[pag].childNodes[4].childNodes;

o score vc pode fazer com uma caixa de texto dinâmico, usando a variável corretas.. nem é difícil..

valeu, espero ter ajudado!

té+
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
New Replies EU PRECISO DE AJUDA URGENTE
SONS NO FLASH
Flash & ActionScript celioluiz 
  • 3 Replies
  • 1265 Views
New Replies socorro - preciso de ajuda, desenha um coração
preciso de ajuda pra desenhar um coraçao
Flash & ActionScript katiano 
  • 1 Reply
  • 2230 Views
New Replies Ajuda em Power Point Outros ZMorais 
  • 0 Replies
  • 1236 Views
New Replies ajuda com texto Dreamweaver phrade 
  • 7 Replies
  • 1194 Views
New Replies Mapa ajuda a descobrir onde pega TV digital em São Paulo Notícias Notícias 
  • 0 Replies
  • 518 Views
New Replies Ajuda com combobox
Carregando a combo2 a partir da escolha da combo1
Flash & ActionScript Márcio Simões 
  • 7 Replies
  • 1626 Views
New Replies ACTION SCRIPT
PRECISO DE AJUDA DE TODOS SOU NOVO NO TRABALHO FLASHE NAO SEI QUASE NA
Flash & ActionScript fabinhogv 
  • 1 Reply
  • 468 Views
New Replies Criptografia e descriptografia
preciso de ajuda
Flash & ActionScript _DesTR0YleR_ 
  • 5 Replies
  • 2632 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)