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:


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

Help














