Ir para conteúdo

Arquivado

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

Rodrigo Germino

[Resolvido] Prova de 30 questões no Flash 8 função if não funcion

Recommended Posts

Pessoal estou desenvolvendo uma prova em flash 8 com 30 questões.

Estou usando dois txt, um é o gabarito.txt e o outro as perguntas.txt.

Consegui importar todos os dados "belezinha", mas quando a função if e else vai corrigir, não enxerga a variavel carregada do gabarito.txt e sempre retorna 0 mesmo sendo correta a resposta.

Já procurei na net, passei mais de 12 horas tentando encontrar solução pra isso mas nem consegui

 

 

var objLoadVars = new LoadVars(); 
objLoadVars.load("gabarito.txt"); 
objLoadVars.load("perguntas.txt");
//aqui carrega as variveis nos respectivos Dynamic Text
objLoadVars.onLoad = function(){ 
	RESPOSTA1=(objLoadVars.RESPOSTA1); 
	RESPOSTA2=(objLoadVars.RESPOSTA2);
	RESPOSTA3=(objLoadVars.RESPOSTA3);
//daqui para baixo existem mais! até 30 questões
};

 

 

//aqui é o botão que corrige a prova no final
on (release) {
if (objLoadVars.PERGUNTA1 == objLoadVars.RESPOSTA1){
				_root.RESULTADO1=3,3;
} else {
	_root.RESULTADO1=0;
}
}

Se alguem poder me ajudar

só preciso que esse botão faça essa comparação! :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim é ActionScript 2... e você havia postado em ActionScript 3

 

Quanto ao if else...

 

No seu botão de verificar, instancie ele como verificar e faça assim:

var objLoadVars = new LoadVars();
objLoadVars.load("gabarito.txt");
objLoadVars.load("perguntas.txt");
//aqui carrega as variveis nos respectivos Dynamic Text
objLoadVars.onLoad = function(){
	RESPOSTA1=(objLoadVars.RESPOSTA1);
	RESPOSTA2=(objLoadVars.RESPOSTA2);
	RESPOSTA3=(objLoadVars.RESPOSTA3);
//daqui para baixo existem mais! até 30 questões
};

verificar.onPress = function(){
	if(pergunta1.text == resposta1){ trace("acertou") }
	else { trace("errou"); }
}

Não coloque ação nenhuma no botão... remova todas as actions que você inseriu no botão e apenas coloque uma instancia nele... e esse código

 

Pois onde está o verifica.onPress é a mesma ação que colocar on(release).

 

O campo de texto dinamico deveria ser um input text correto? para que a pessoa responda lá.

 

Se ela respondeu corretamente e você instanciou o campo de texto como pergunta1... o resultado do if tem qe dar acertou...

Se não vai dar errou.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu tirei as funções dos botões e instanciei todos!

e fiz o seguinte....

 

var objLoadVars = new LoadVars(); 
objLoadVars.load("gabarito.txt"); 
//aqui carrega as variveis nos Dynamic Text
objLoadVars.onLoad = function(){ 
	RESPOSTA1=(objLoadVars.RESPOSTA1); 
	RESPOSTA2=(objLoadVars.RESPOSTA2);
	RESPOSTA3=(objLoadVars.RESPOSTA3);
//daqui para baixo existem mais! até 30 questões
};
verificar.onPress = function(){
	if(PERGUNTA1.text == RESPOSTA1){ 
	trace("acertou") }
	else { trace("errou"); }
}
BOTÃO1.onPress = function(){
	PERGUNTA1.text="A";
}
BOTÃO2.onPress = function(){
	PERGUNTA1.text="B";
}
BOTÃO3.onPress = function(){
	PERGUNTA1.text="C";
}
BOTÃO4.onPress = function(){
	PERGUNTA1.text="D";
}

e ele sempre me retorna errou

é como se ele não encontrasse nada no dynamic text respectivo de resposta das perguntas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o seguinte teste!

e ele me retorno exatamente o que eu quero, mas se eu uso os botões para preencher o dynamic text ele retorna sempre "errou"

é como se naum encontrasse nada no dynamic text de resposta

 

 

var objLoadVars = new LoadVars(); 
objLoadVars.load("gabarito.txt"); 
//aqui carrega as variveis nos Dynamic Text
objLoadVars.onLoad = function(){ 
	RESPOSTA1=(objLoadVars.RESPOSTA1); 
	PERGUNTA1=(objLoadVars.PERGUNTA1);
};
	if(PERGUNTA1 == RESPOSTA1){ 
	trace("acertou") }
	else { trace("errou"); }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara você deve fazer assim:

 

//Declaro as variáveis que vou usar
var resposta1;
var resposta2;
var resposta3;
//Declaro o obj de carregar
var obj= new LoadVars();
obj.load("gabarito.txt");
obj.load("perguntas.txt");
//aqui carrega as variveis nos respectivos Dynamic Text
obj.onLoad = function(ok){
if(ok){
resposta1=(obj.resposta1);
resposta2=(obj.resposta2);
resposta3=(obj.resposta3);
}else{ 
trace("Erro ao carregar");
}
trace(resposta1+","+resposta2+","+resposta3);// Aqui se ele conseguir carregar o txt vai dar os valores das respostas
};

Você deve declarar as variáveis das respostas fora do carregamento.

 

Sugiro que você faça isso com um array..... para fácilitar sua vida :S

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu fiz como você me passou e carregou tudo certinho!

 

mas agora tem o botão para verificar se a alternativa selecionada esta correta ou naum!

mas ai q está minha dificuldade verificar se a o Dynamic text (resposta) confere com o valor do Dynamic text (pergunta)

 

//Declaro as variáveis que vou usar
var resposta1;
var resposta2;
var resposta3;
var pergunta1;
var resultado1;
//Declaro o obj de carregar
var obj= new LoadVars();
obj.load("gabarito.txt");
obj.load("perguntas.txt");
//aqui carrega as variveis nos respectivos Dynamic Text
obj.onLoad = function(ok){
if(ok){
resposta1=(obj.resposta1);
resposta2=(obj.resposta2);
resposta3=(obj.resposta3);
}else{ 
trace("Erro ao carregar");
}
trace(resposta1+","+resposta2+","+resposta3);// Aqui se ele conseguir carregar o txt vai dar os valores das respostas
};

botão1.onPress = function(){
	pergunta1.text="A";
}
botão2.onPress = function(){
	pergunta1.text="B";
}
botão3.onPress = function(){
	pergunta1.text="C";
}
botão4.onPress = function(){
	pergunta1.text="D";
}
verificar.onPress = function(){
	if(pergunta1 == resposta1){ 
	resultado1=(3) }
	else { resultado1=(0); }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara to quase ficando louco com isso! http://forum.imasters.com.br/public/style_emoticons/default/upset.gif haushauhsuahs

 

Fiz umas mudanças nos nomes das variaveis, uma unica pergunta e tudo em um unico "banco de dados" (perguntas e gabarito.txt) para simplificar!

Coloquei o text como você me lembrou, mas mesmo assim quando clico no botão verificar ele me retorna 0, quando a alternativa esta correta!

Seila é como se naum encontrasse nada no dynamic text (respondida1) ou no (resposta1) porque se encontrasse me retornaria 3

 

Para mostrar minha idéia segue a imagem, com exemplos das Dynamic text depois de ter clicado no botão verificar!

 

Imagem Postada

 

// Declaro as variáveis que vou usar
var resposta1;
// Declaração das variaveis da 1ª pergunta
var pergunta1;
var alternativa11;
var alternativa12;
var alternativa13;
var alternativa14;
// System.useCodepage = true; para mostrar acentos no texto importado
System.useCodepage = true;	
// Declaro o obj de carregar perguntas / E o gabarito estão todos no msm TXT
var obj = new LoadVars();
obj.load("perguntas e gabarito.txt");
// aqui carrega as variaveis nos respectivos Dynamic Text
obj.onLoad = function(ok) {
	if (ok) {
//aqui carrega as respostas
		resposta1 = (obj.resposta1);
//aqui carrega a 1ª pergunta
		pergunta1= (obj.pergunta1);
		alternativa11 = (obj.alternativa11);
		alternativa12 = (obj.alternativa12);
		alternativa13 = (obj.alternativa13);
		alternativa14 = (obj.alternativa14);
	} else {
		trace("Erro ao carregar");
	}
};
//botão verificar
verificar.onPress = function(){
	if(respondida1.text == resposta1){ 
	resultado1=(3) }
	else { resultado1=(0); }
}
//aqui esta os botões
botão1.onPress = function(){
respondida1.text="A"
}
botão2.onPress = function(){
respondida1.text="B"
}
botão3.onPress = function(){
respondida1.text="C"
}
botão4.onPress = function(){
respondida1.text="D"
}

 

Bom até o momento agradeço a atenção, porque até mesmo todas as minhas duvidas eu resolvia pelo google mesmo kkkk, mas esse acho que só com pessoal que realmente entende!

 

Ficarei no aguardo....

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chame as váriaveis TODAS que você vai usar antes de qualquer coisa

 

Declara tudo que você vai usar...

 

Como você ta usando variáveis que são dentro de botões não tem .text

 

.text é só para campos de texto instanciados

se for uma variavel ela vai receber o dado normal

 

exemplo

var resposta:String = new String();

botao.onPress = function(){
   resposta = "Eu sou uma STRING";
}

verifica.onPress = function(){
trace(resposta); //output Eu sou uma STRING
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

:unsure: Putz cara vo te contar qual era o problema!

Sabe o banco de dados em txt e tal?

 

eu estava colocando assim:

 

&resposta1=D

&resposta2=A

&resposta3=C ........assim por diante.....

 

ai eu descobri que depois da letra carregada estava adicionando um espaço

 

então fiz assim:

 

&resposta1=D&

&resposta2=A&

&resposta3=C& ........assim por diante.....

 

ai elimino o espaço no final de cada letra e deu tudo certo http://forum.imasters.com.br/public/style_emoticons/default/joia.gif bom por enquanto né shasuhaushuhsuahs

 

valeu pela grande ajuda, porque até mesmo tirei muitas duvidas sobre o actionscript.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, eu também precisava de um programinha assim, porem sou iniciante, preciso muito mais não tenho ideia de como fazer. Faço varias coisas em flash mais bem básico, usei o flash quando era o 5 e com isso mudou muito. Precisava mesmo era de um tutorial pelo menos pra ter a ideia de como farei, pois no meu caso não chega a trinta perguntas. Não entendo muito action script. Espero uma ajuda obrigado.

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.