losrs 0 Denunciar post Postado Fevereiro 6, 2009 Pessoal, o problema é o seguinte: Tenho um jogo onde vários mc´s sao carregados e ficam trocando de lugar em um certo tempo. Quando coloco o código do SetInterval fora de uma funçao o clearInterval funciona na boa. O problema é que tenho que chamar o SetInterval apartir de um botao que da inicio ao jogo.Só que ai o clearInterval deixa de funcionar. Dese jeito nao funciona: btn_jogo.onPress = function () { var intervalo = setInterval(cambio, tempo); btn_jogo.enabled = false; btn_jogo._alpha = 0; } function carregarMC() { for (i=0; i<ArrayPosition.length; i++) { _root.attachMovie("mc_aluno"+"_"+i, "mc_aluno"+"_"+i, i, {_x:ArrayPosition[i][0], _y:ArrayPosition[i][1]}); _root.mc_aluno_0.enabled = true; mc_aluno_0.onPress = function() { this.enabled = false; _root.contAcerto = _root.contAcerto+1; _root.pontosAula = _root.pontosAula+10; _root.Som(); if (contAcerto>=3) { clearInterval(intervalo); _root.desabilitarMC(); _root.removerMC(); _root.chamaFinal(); } else { _root.cambio(); } }; } } O código todo do jogo é bem maior, postei a parte que acredito ser o problema. Compartilhar este post Link para o post Compartilhar em outros sites
Freelife 2 Denunciar post Postado Fevereiro 6, 2009 Tive o mesmo problema ontem... resolvi transformando a variável em global. Ao invé de: var intervalo = ... fiz: _global.intervalo = ... Aí funcionou pois, a variável está dentro de uma função, quando tento acessá-la fora da mesma não dá certo. Testa aí... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
losrs 0 Denunciar post Postado Fevereiro 7, 2009 Valeu a força Freelife, funcionou tranquilo. Compartilhar este post Link para o post Compartilhar em outros sites
losrs 0 Denunciar post Postado Fevereiro 7, 2009 Surgiu uma outra dúvida: Após chamar o clearInterval tem como chamar novamente o setInterval com o mesmo nome. Exemplo: No jogo tenho um botao de saída que chama um mc, neste mc há dois botoes um confirmando a saída e outra que retorna ao jogo.Ao clicar no botao para retornar ao jogo teria que habilitar novamente o setInterval.Tem como? Compartilhar este post Link para o post Compartilhar em outros sites
Freelife 2 Denunciar post Postado Fevereiro 8, 2009 Sim... Basta colocar o setInteval dentro de uma função, caso ainda não esteja. function comecar(){ _global.intervalo = ... } daí ao invé de você colocar: btn_jogo.onPress = function () { var intervalo = setInterval(cambio, tempo); btn_jogo.enabled = false; btn_jogo._alpha = 0; } para chamar a função, você coloca: btn_jogo.onPress = function () { comecar(); btn_jogo.enabled = false; btn_jogo._alpha = 0; } e no botão para volvar ao início faz a mesma coisa. Você pode fazer isso com o clearInterval tbém, transforma ele em função e chama toda vez que precisar: function limpar(){ clearInterval(_global.intervalo); } Abraços Compartilhar este post Link para o post Compartilhar em outros sites