Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel o rei

Sistema de quiz com xml

Recommended Posts

Olá pessoal!

 

Fiz um quiz que usa xml para guardar perguntas e respostas.

 

Primeiro eu coloquei no palco uma caixa de texto dinâmica e instanciei de num.

Depois criei um movieclip e coloquei no palco instanciado de display, nele haverá quatro frames.

Coloquei duas camadas, uma só haverá um stop();

No primeiro frame tem uma caixa com a pergunta instanciado de pergunta.

Haverá 4 botões(bt1,bt2,bt3,bt4) e do lado de cada um 4 caixas de textos com as alternativas(res1,res2,res3,res4)

No segundo frame irá ter uma mensagem para quando acertar a pergunta e um botão instanciado de continuar com um texto "continuar"

No terceiro frame terá uma mensagem de pergunta errada, uma caixa de texto dinamica instanciado de respcerta e um botão de continuar instanciado de continuar2

No quarto frame terá as caixas de textos "acertos" e "erros".

 

A cada vez que trocar os frames de display vai ter que fazer addEventListener.

 

Eu ia hospedar no megaSWF mas ele não hospeda xml e nem fla.

acesse o swf

http://danielbelmiro...io.com/quiz.xml

http://danielbelmiro...io.com/quiz.fla

 

 

package {
import flash.net.* ;
import flash.display.Sprite;
import flash.events.* ;
public class quiz extends Sprite {
	var url:URLRequest = new URLRequest('quiz.xml');
	var urlloader:URLLoader = new URLLoader();
	var xml:XML ;
	var pergatual:Number = 0 ; var complete:Boolean = false;
	var acertos:Number = 0 ;
	public function quiz() {
		urlloader.load( url );//carrega o xml 
		urlloader.addEventListener( Event.COMPLETE , leia);
		// ao carregar completamente o arquivo é chamada a função leia
		stage.addEventListener( Event.ENTER_FRAME , ef);
		} public function ef(e:Event):void{
		if(complete == true){
		num.text = pergatual + "/" + xml.pergunta.length();
		}}		
	public function leia (e:Event):void {
		complete = true ; trace("complete");
		xml = new XML (urlloader.data );
		pergatual = 1 ;
		exibepergunta();
	}
	public function exibepergunta(){
		display.gotoAndStop(1);
		display.bt1.addEventListener( MouseEvent.CLICK , clickbt1);
		display.bt2.addEventListener( MouseEvent.CLICK , clickbt2);
		display.bt3.addEventListener( MouseEvent.CLICK , clickbt3);
		display.bt4.addEventListener( MouseEvent.CLICK , clickbt4);
		display.pergunta.text = xml.pergunta[pergatual - 1].texto ;
		display.res1.text = xml.pergunta[pergatual - 1].a1 ;
		display.res2.text = xml.pergunta[pergatual - 1].a2 ;
		display.res3.text = xml.pergunta[pergatual - 1].a3 ;
		display.res4.text = xml.pergunta[pergatual - 1].a4 ;			
		}
	public function clickbt1(e:MouseEvent):void{
		if(xml.pergunta[pergatual - 1].@certo == 1 ){
			display.gotoAndStop(2);		
			display.continuar.addEventListener( MouseEvent.CLICK , continuar);
			acertos += 1 ;
			display.continuar.addEventListener( MouseEvent.CLICK , continuar);
		}else{
			display.gotoAndStop(3);
			display.continuar2.addEventListener( MouseEvent.CLICK , continuar);
			switch(xml.pergunta[pergatual - 1].@certo.toString()){
			case "2":
			display.respcerta.text = xml.pergunta[pergatual - 1].a2;
			break;
			case "3":
			display.respcerta.text = xml.pergunta[pergatual - 1].a3;
			break;
			case "4":
			display.respcerta.text = xml.pergunta[pergatual - 1].a4;
			break;
			}}}
	public function clickbt2(e:MouseEvent):void{
		if(xml.pergunta[pergatual - 1].@certo == 2 ){
			display.gotoAndStop(2);		
			display.continuar.addEventListener( MouseEvent.CLICK , continuar);;						
		}else{
			display.gotoAndStop(3);
			display.continuar2.addEventListener( MouseEvent.CLICK , continuar);
			switch(xml.pergunta[pergatual - 1].@certo.toString()){
			case "1":
			display.respcerta.text = xml.pergunta[pergatual - 1].a1;
			break;
			case "3":
			display.respcerta.text = xml.pergunta[pergatual - 1].a3;
			break;
			case "4":
			display.respcerta.text = xml.pergunta[pergatual - 1].a4;
			break;
			}}}
	public function clickbt3(e:MouseEvent):void{
		if(xml.pergunta[pergatual - 1].@certo == 3 ){
			display.gotoAndStop(2);		
			display.continuar.addEventListener( MouseEvent.CLICK , continuar);
		}else{
			display.gotoAndStop(3);
			display.continuar2.addEventListener( MouseEvent.CLICK , continuar);
			switch(xml.pergunta[pergatual - 1].@certo.toString()){
			case "1":
			display.respcerta.text = xml.pergunta[pergatual - 1].a1;
			break;
			case "2":
			display.respcerta.text = xml.pergunta[pergatual - 1].a2;
			break;
			case "4":
			display.respcerta.text = xml.pergunta[pergatual - 1].a4;
			break;
			}}}
	public function clickbt4(e:MouseEvent):void{			
		if(xml.pergunta[pergatual - 1].@certo == 4 ){
			display.gotoAndStop(2);		
			display.continuar.addEventListener( MouseEvent.CLICK , continuar);			
		}else{
			display.gotoAndStop(3);
			display.continuar2.addEventListener( MouseEvent.CLICK , continuar);
			switch(xml.pergunta[pergatual - 1].@certo.toString()){
			case "1":
			display.respcerta.text = xml.pergunta[pergatual - 1].a1;
			break;
			case "2":
			display.respcerta.text = xml.pergunta[pergatual - 1].a2;
			break;
			case "3":				
			display.respcerta.text = xml.pergunta[pergatual - 1].a3;
			break;
			}}}		
	public function continuar(e:MouseEvent){
		trace("clicou");
		if(xml.pergunta.length() > pergatual){
		pergatual+= 1 ;
		exibepergunta();
		}
		else{
		display.gotoAndStop(4) ;	
		display.acertos.text = acertos + "(" + (  100 / xml.pergunta.length()) * acertos + "%)";
		display.erros.text = xml.pergunta.length() - acertos + "("  +(  100 / xml.pergunta.length()) * (xml.pergunta.length() - acertos) + "%)" ;
		}}}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel, os links estão quebrados.

 

Experimente acionar o ícone 'inserir link' e colar a URL.

 

 

Abraços :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está aqui o link:

 

Clique aqui

 

 

Quem não consegui abrir o xml pelo link ele está aqui:

<?xml version="2.0" encoding="UTF-8" ?>
<quiz>
<pergunta certo="1">
<texto>Quanto é ((1 + 1 * 1 / 1)^1 * 1924^11000) ^ 0 ? </texto>
<a1>1</a1>
<a2>2</a2 >
<a3>21365</a3>
<a4>infinito</a4>
</pergunta>
<pergunta certo="3">
<texto>O que significa PHP(linguagem de programação programação)?</texto>
<a1>Parents Helping Parents</a1>
<a2>Personal House Page</a2 >
<a3>Personal Home Page</a3>
<a4>Personal HomePage</a4>
</pergunta>

<pergunta certo="2">
<texto>Quantos bits tem em 15.654 TB? E Em 1536 KB?(use calculadora, claro!)</texto>
<a1>125232000000000 e 12288000, respectivamente</a1>
<a2>137694040169644032 e 12582912, respectivamente</a2 >
<a3>1542455835673532 e 12467953, respectivamente</a3>
<a4>351865456868584 e 64585854, respectivamente</a4>
</pergunta>
<pergunta certo="3">
<texto>Qual é a capacidade média de um CD normal?</texto>
<a1>500 GM</a1>
<a2>700 KW</a2 >
<a3>700 MB</a3>
<a4>800 KG</a4>
</pergunta>
<pergunta certo="1">
<texto>O que significa a sigla USB?</texto>
<a1>Universal Serial Bus</a1>
<a2>Universal Serial Barrament</a2 >
<a3>Universal Serial de Banana</a3>
<a4>Não sei.</a4>
</pergunta>


</quiz>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante mas... Acertei todas as perguntas e está mostrando Acertos 2; Erros 3 o.O

 

Agora se errar todas ele conta certinho ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acertei 3 respostas e deu como resultado 2 acertos. Precisa ajuste. ;)

 

Penso que fique melhor grafar "Resposta Errada", não ERRATA.

 

 

Abraços

 

 

obs: quando acessei hoje a tarde os dois links estavam assim >> Clique aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

É meio difícil ter nenhum erro de ortografia, mas não sabia que tinha esse problema de acertar 5 e aparecer 2.

 

O erro é que só contava o acerto quando o usuario clicava na primeira alternativa.(perguntas 1 e 5).

Agora não aparece pergunta 'errata'.

Clique aqui

 

O script: http://danielbelmiro...rio.com/quiz.as

Mas isso é um bom exemplo de uma forma de uso do XML?

 

O link do XML não está funcionando bem, não sei se é da hospedagem gratuita.

Eu postei acima o conteudo do xml.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou legal agora. :clap:

 

 

Abraços

 

 

obs: quanto ao server, experimente compactar os arquivos para download (Winrar).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.