Ir para conteúdo

Arquivado

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

Makone

setInterval

Recommended Posts

Boa noite galera do Imasters...To com um problema e infelizmente não poderei postar o codigo aqui, por N motivos...Mas a coisa funciona da seguinte maneira. Estou desenvolvendo um jogo de perguntas e respostas, onde quando o usuario faz um certo numero de pontos, ele se encaminha para o level mais dificil.Meu problema, é que eu necessito que a pontuação seja mostrada ao usuario antes de se partir para a animação que "starta" o proximo nivel de dificuldade, por exemplo:O usuario responde X questões e acumula 4 pontos, ao fazer esses 4 pontos, o programa se encarrega de ir pro proximo level.O que acontece:Meu programa acumula 3 pontos, mas quando o usuario responde uma pergunta que ira resultar em mais um ponto para ele, antes mesmo de o sistema exibir os 4 pontos para o mesmo, ele ja parte pra animação, e estes pontos, apesar de computados, serão exibidos somente no proximo level, coisa que não posso fazer, pois tenho que exibir esses 4 pontos pro usuario antes de partir pro proximo level.Tentei colocar um setInterval, para que quando chegasse-mos aos 4 ptos, o sistema esperaria o tempo que eu definisse e ai então prosseguiria para o proximo level.Mas o problema que ocorre é que ou essa funação que contem o setInterval é invocada sozinha, ou seja não a nada que a chame e mesmo assim ele se AUTO executa, ou ainda de outra forma que fiz, colocando ela dentro de um if,ela me deixa acumulando pontos, 5,6,7...Resumindo, gostaria de saber se alguem tem alguma ideia, pra que quando o usuario fizer 4, 11, 22 pontos que são os limites de cada nivel, o sistema primeiramente exiba pro usuario em questão de segundos que ele acertou pra depois partir pro proximo nivel...Não sei se fui claro, qualquer coisa...Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o interval é meio chato.... bom para quando você prescisa regular a velocidade.... de resto utilize o enterFrame... la vai !!

 

this.onEnterframe = function(){	//sistema de pontuação..	if (resposta == "1"){	//verifica se ele acertou ai vai do seu cod..	caixaTexto += 4;	} else {	//não acertou}//para deletar utilize "apreendi com o AntonioSp"delete this.onEnterframe;//edited* - nobodys saw !//funcao para colocar o bonusfunction verifica(){	//sistema de pontuação..	if (resposta == "1"){	//verifica se ele acertou ai vai do seu cod..	caixaTexto += 4;	} else {	//não acertou}//usando intervalvar rafa = setInterval(verifica, 1000); //tempo em milisegundos//para deletar/limpar o intervalclearInterval(rafa);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Rafael...

this.onEnterframe = function(){ //sistema de pontuação.. if (resposta == "1"){ //verifica se ele acertou ai vai do seu cod.. caixaTexto += 4; } else { //não acertou}//para deletar utilize "apreendi com o AntonioSp"this.delete onEnterframe;//funcao para colocar o bonusfunction verifica(){ //sistema de pontuação.. if (resposta == "1"){ //verifica se ele acertou ai vai do seu cod.. caixaTexto += 4; } else { //não acertou}

ai não me "interessa muito" porque a logica todinha dela ja está pronta. o Unico lance é ele apos receber 4 pontos na caixa de texto, aguardar alguns segundos para que este veja, e apos o termino, toca a animação pra frente.

//usando intervalvar rafa = setInterval(verifica, 1000); //tempo em milisegundos//para deletar/limpar o intervalclearInterval(rafa);

Eu fiz esse lance só que é como te disse, se a coloco em uma função, function contador por exemplo, e coloco ela dentro, mesmo sem chamar a função EM LOCAL NENHUM, ela tem as manhas de se AUTO EXECUTAR.Agora se coloco dentro do IF, simplesmente ela ignora o tempo, e fica acumulando os pontos 4,5 ..... 1000.Pelo que vi hoje, não existe o meio termo com ela, algum movie pode ta influenciando ela, mas é algo que n tenho tempo pra ver, pois tenho que entregar rapido.Tentei ate usar o getTimer(), mas ficou uma parada sem muito entendimento mesmo pesquisando no guia de referencia do actionScript 8.Logo se voce ou outra pessoa, tiver uma boa solução para isso, eu tenho uma que iria resolver facilmente, mas acredite em min, ia ficar NOJENTO. Então... sugestões?Obrigado pela tua resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

//para deletar utilize "apreendi com o AntonioSp"this.delete onEnterframe;

Aí você queima o meu filme! :P É: delete this.onEnterFrame; heheMakone, o set tem que funcionar assim mesmo, do jeito que o rafael mostrou. Coloca um trace("função executada"); dentro da sua função que você diz que se "autoexecuta" e veja quantas vezes ela é chamada...E não esqueça de limpar o setInterval dentro da função, assim ela se executando toda vez.Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

fixed..!sabe quando a mão ta cansanda e a cabeça vai indo mais rapido... pois é !!Q queima filme uq cara.. é queima meu flv ! rssssAcho que a solução desse topico esta na assinatura do mestre ai emcima...Use o trace()!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então galera, to ciente disso tudo ai. Antoniosp, a coisa n ta tão fácil assim não.Como eu disse a voces, se eu coloco a chamada da função dentro do meu if, mesmo sem ser chamada a função se AUTO EXECUTA. isso mesmo, se AUTO EXECUTA... pode ser um EnterFrame que ta la emcima do codigo, vou dar uma verificada amanha. Agora se crio a função dentro do meu if e executo ela lá mesmo, (sei que isso não se faz, mas só fiz pra teste), o programa não é capaz de quando der 4, trocar de nivel...Pode ser um bug enoooooooooooooooooooooooorme. Agora comentando com voces, acho que pode ser um enterframe que serve pra outra coisa, pois essa função que se AUTO executa (setInterval), começa a ser executada (Automaticamente pois não chamei ela em nenhum local), quando entra no meu frame...vamos ver.... qualquer coisa, volto a postar novamente.e Ah os traces, coloquei um antes de chamar a função, e coloquei outro depois de chamar a função. Ele me exibe os dois, mas não é capaz de fazer o que eu quero....Acredito que seja alguma linha de codigo que ta "atrapalhando"... vamos ver... de qualquer forma obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.. to usando o setInterval em outro lugar, outro frame, mas mesmo que fosse isso, n tem como pois troquei o nome da minha função, e o nome das variaveis, ou seja, se ela tem chance de se parecer com a outra em algo, é só o nome function...

 

E ele me continua executando quando entra no frame. Mas engraçado é que não tem nada associado a isso, a não ser um movie, q depois de algumas condições chama essa função meio que indiretamente, será? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você vai ter agora que fazer uma boa vasculhada no seu AS. Começe pelo Window> Movie Explorer e procure pelo nome da sua função (deixe todas as opções marcadas).A partir daí, vá comentando algumas funções e veja qual dela está sendo chamada fora de hora e tal. Depois é só corrigir, já sabendo exatamente onde está o erro.Flw

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.