Ir para conteúdo

POWERED BY:

Arquivado

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

3ip

Como fazer para forçar um movieclip a ser reproduzido?

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.