3ip 0 Denunciar post Postado Janeiro 23, 2009 Estou tentando criar um projecto em que quando o microfone deteta ruido dá origem a uma segunda imagem, e quando deixa de haver ruido volta à primeira. Ou seja, a ideia do comando é: if (myMic.activityLevel>=3) { mc.nextFrame(); } if (myMic.activityLevel<3) { mc.prevFrame(); } Até aqui consegui com que tudo funcionasse bem! Mas quando tento fazer da primeira imagem um movieclip e fazer com que dentro desse movieclip contenha uma animação(que esteja sempre a funcionar em loop) ela não funciona. Parece que o comando nextFrame e prevFrame fazem um stop geral em toda animação e a primeira imagem(movieclip) fica também parada. Que comando preciso acrescentar para que a primeira imagem esteja sempre em reprodução?! Neste link está a forma básica do meu projecto: http://www.zshare.net/download/54526643d2e85ca9 Agradecia qualquer sugestão Abraço Compartilhar este post Link para o post Compartilhar em outros sites
gmcp 0 Denunciar post Postado Janeiro 23, 2009 Com gotoAndStop acho que dá, fica assim: if (myMic.activityLevel>=3) { mc.gotoAndStop(1); } if (myMic.activityLevel<3) { mc.gotoAndStop(2); }ou gotoAndPlay se for pra mostrar alguma animação, mas eu geralmente prefiro fazer a animação em um mc separado e colocar no frame 2 pra ter mais controle. Compartilhar este post Link para o post Compartilhar em outros sites
3ip 0 Denunciar post Postado Janeiro 23, 2009 pois.. mas com o gotoAndStop apenas fico a funcionar com o frame 1 e 2! Eu tenho 20 frames e quando o microfone deteta barulho vai fazendo nextFrame ate ao frame 20, quando deixa de fazer volta ao 1, mais ou menos no genero dum spektrum(ve o exemplo da bola a crescer e a diminuir no meu projecto). O problema é que no frame 1 esta um movieclip que dentro tem uma animação, e que devia de dar quando se volta ao frame 1, mas aparece parada. ve no projecto uma bola cinzenta com um pontinho vermelho! essa bola cizenta é um movieclip em que o pontinho devia de tar sempre a andar a volta enquanto estamos no frame 1! Compartilhar este post Link para o post Compartilhar em outros sites
gmcp 0 Denunciar post Postado Janeiro 23, 2009 A animação muda com o volume ou é a mesma em qualquer ruído? Se for uma só uma você pode ou usar o gotoAndPlay no lugar do stop (des de editado---- não era pra ter saído isso, alguem deleta? Compartilhar este post Link para o post Compartilhar em outros sites
gmcp 0 Denunciar post Postado Janeiro 23, 2009 se você quer um efeito que jogue o mc "de um frame pro outro" sempre que o microfone detectar alguma coisa, tente adaptar isso ao sem arquivo: stop(); //função principal, controla os efeitos no movieclip function controlarMC(e:Event) { //variável de controle var sortear = "ligado"; //para o mc e volta ao frame 1 if (myMic.activityLevel<3) { mc.gotoAndStop(1); if(sortear == "ligado"){ stage.removeEventListener(Event.ENTER_FRAME, sortearFrame); sortear = "desligado"; } } //faz o sorteio frames continuamente e joga o valor do sorteio dentro do "gotoAndStop" if (myMic.activityLevel>=3) { function sortearFrame(e:Event){ var sorteio = Math.round(Math.random()*20); gotoAndStop(sorteio); if(sortear == "desligado"){ stage.addEventListener(Event.ENTER_FRAME, sortearFrame); sortear = "ligado"; } } } } stage.addEventListener(Event.ENTER_FRAME, controlarMC); E se quer que ele simplesmente de play quando detectar som e volte ao frame 1 quando não detectar: stop(); function controlarMC(e:Event) { if (myMic.activityLevel<3) { mc.gotoAndStop(1); } if (myMic.activityLevel>=3) { if(mc.currentFrame == 1){ mc.play(); } } } stage.addEventListener(Event.ENTER_FRAME, controlarMC); Compartilhar este post Link para o post Compartilhar em outros sites
3ip 0 Denunciar post Postado Janeiro 23, 2009 Estas duas maneiras também são interessantes mas ainda não é assim que eu preciso que fique… Eu preciso que o movieclip do primeiro frame de sempre play, e quando há barulho ele desaparece porque vamos po frame 2, 3, 4, 5… e depois quando deixar de haver barulho voltamos pelos frames 6..5..4..3..2..1! - é aqui, quando voltarmos ao frame 1, que voltamos a ver o movieclip que continua a reproduzir em loop! Compartilhar este post Link para o post Compartilhar em outros sites
gmcp 0 Denunciar post Postado Janeiro 24, 2009 tente isso: stop(); var currentmcframe = mc.currentFrame; function controlarMC(e:Event) { if (myMic.activityLevel<3) { mc.gotoAndStop(currentmcframe -1); } if (myMic.activityLevel>=3) { mc.play(); } } } stage.addEventListener(Event.ENTER_FRAME, controlarMC); Compartilhar este post Link para o post Compartilhar em outros sites
3ip 0 Denunciar post Postado Janeiro 26, 2009 sera que não tem forma de criar algo do genero ... if (mc.currentFrame = 1) { mc.mc2.play(); } Compartilhar este post Link para o post Compartilhar em outros sites
gmcp 0 Denunciar post Postado Janeiro 26, 2009 sera que não tem forma de criar algo do genero ... if (mc.currentFrame = 1) { mc.mc2.play(); } Provavelmente sim, só que seria (mc.currentFrame == 1), com dois '='. Compartilhar este post Link para o post Compartilhar em outros sites