Juan_VALSA 0 Denunciar post Postado Março 26, 2006 Olá amigos, fiz uma fução que quando a pessoa clica ela vê qual movie deve ser tocado e quais devem ser excluidos. A funcão indica exatamente as variáveis porém quando mando os filmes excluir o movie ele só pega a última variável. Tentei usar o "eval" de uma explicação que o Carneirinho me deu há um tempo atrás, mas não tive sucesso. Quem puder me dê essa força. Abs! function escolhe(a){ for(i=1;i<=4;i++){ if(this["mc"+i]==a){ this["mc"+i].play(); trace("play mc"+i) }else{ zica=eval(this["mc"+i]) trace("volta "+zica) voltar(zica) //essa é outra função } }} Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 26, 2006 Se não me engano aqui você vai estar comparando um mc com uma variavel if(this["mc"+i]==a){ tente dar um trace dos dois pra ver se serão realmente iguais Compartilhar este post Link para o post Compartilhar em outros sites
Juan_VALSA 0 Denunciar post Postado Março 26, 2006 Então carneiro, eu coloquei estes "trace" que já estão e ele me diz exatamente o que eu queria... tipo que é para tocar o tal mc+i e que os outros voltariam. Coloquei esse outro trace que você sugeriu e os nomes estão certos... e outra coisa que acontece é que depois que coloquei esse onEnterFrame ele estragou outro que estava funcionando... vou colocar o código todo. fscommand("fullscreen", true);fscommand("allowscale", false);destaque._alpha = 50;destaqueBtn.onRollOver = function() { destaque.play(); onEnterFrame = function () { destaque._alpha += (100-destaque._alpha)*0.1; };};destaqueBtn.onRollOut = function() { onEnterFrame = function () { destaque._alpha -= (destaque._alpha-50)*0.1; destaque.gotoAndStop(destaque._currentframe -= 1); };};btn01.onRelease = function() { destaqueBtn._visible = false; some(destaque) escolhe(mc1) };btn02.onRelease = function() { destaqueBtn._visible = false; some(destaque) escolhe(mc2) };btn03.onRelease = function() { destaqueBtn._visible = false; some(destaque) escolhe(mc3) };btn04.onRelease = function() { destaqueBtn._visible = false; some(destaque) escolhe(mc4)};btn05.onRelease = function() { destaqueBtn._visible = true; onEnterFrame = function () { destaque._alpha += (100-destaque._alpha)*0.1; };};function some(mName){ onEnterFrame = function () { mName._alpha -= (mName._alpha-0)*0.1; };}function voltar(mcName){ onEnterFrame = function () { mcName.gotoAndStop(mcName._currentframe -= 1); };}function escolhe(a){ for(i=1;i<=4;i++){ trace(a) if(this["mc"+i]==a){ this["mc"+i].play(); }else{ zica=eval(this["mc"+i]) trace("volta "+zica) voltar(zica) } }} Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 26, 2006 então Juan, posta essa parte do fla ai pra eu dar uma olhada no que você esta fazendo Compartilhar este post Link para o post Compartilhar em outros sites
Juan_VALSA 0 Denunciar post Postado Março 26, 2006 o meu código completo é este.Vê se pode me orientar...Já fiz todas as combinações...peguei sua outra explicacão do eval... e não está rolando.E esse outro problema de um onenterframe estragar o outro eu estou procurando agora...abs!! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 26, 2006 Aqui a função funcionou, ele fez o mc reproduzir, o problema que você ta tendo do resto é que não esta deletando os outros enterFrame, você deixa ele processando no _currentframe - 1 infinito, tem que colcoar ali um if dizendo para que se o frame for iguai a 1, pra deletar o enterFrame Compartilhar este post Link para o post Compartilhar em outros sites
Juan_VALSA 0 Denunciar post Postado Março 26, 2006 beleza, mas se eu colocar esse delete, ele não tira da função não né?Vou testar e posto o resultado.Agora só uma pergunta de leigo...colocar uma função dentro de outra é tranquilo né?fiquei com medo de ser isso o problema.Mas valeu pela ajuda, vou testar aqui.Abs!! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 26, 2006 Ele vai deletar o enterFrame quando não precisar mais, mas não a função Compartilhar este post Link para o post Compartilhar em outros sites
Juan_VALSA 0 Denunciar post Postado Março 26, 2006 Então Carneiro,coloquei os delete onEnterFrame, funcionou tranquilo...coloquei uns "trace" para saber quando ele estava parando.A única coisa que permanece para mim é...sempre que chamo a funcão "voltar" ela estraga a função "some".Eu estava achando que não podia chamar de dentro de outra função...mas quando coloco a função voltar direto no botão para testar ela também anula a função some...porém os outros botões que não coloquei a função voltar funcionan...entende?você tem alguma idéia do que possa ser?abs!! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 26, 2006 os dois enterFrame estão no mesmo lugar, coloca cada um em um lugar , tipo deixa um no _root e outro no mc, tipo mc.onEnterframe e o outro só onEnterFrame Compartilhar este post Link para o post Compartilhar em outros sites
Juan_VALSA 0 Denunciar post Postado Março 27, 2006 Cara... realmente o problema é o fato de ter vários "onEnterFrame".Tirei todos e fiquei clicando o botão várias vezes e todas as funções funcionaram...1º tentei colocar para cada "onEnterFrame" um nome diferente antes do ponto e n˜åo rolou...depois tentei deixar 1 "onEnterFrame" mas ai fica faltando...Estou tentando fazer alguma coisa para proteger esse on enterframe...se eu conseguir eu posto um retorno aqui...mas aceito sugestões!!Abs!! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Março 27, 2006 Ja que ainda não entendeu a parada de enterFrame, coloca duas funções em uma: function some(mName, mcName){ onEnterFrame = function () { mName._alpha -= (mName._alpha-0)*0.1; mcName.gotoAndStop(mcName._currentframe -= 1); if(mcName._currentframe == 1 && nName._alpha ==0){ delete onEnterFrame; } }; } Compartilhar este post Link para o post Compartilhar em outros sites