Ir para conteúdo

POWERED BY:

Arquivado

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

leandroguimaraes

Reproduzir um movie clip aninhado

Recommended Posts

Boa tarde pessoal. Bem, acho que essa minha dúvida transmite o nível do meu conhecimento em action script (2.0 no caso, pois trabalho usando flash8). O meu problema é o seguinte:

Eu fiz um botão no formato de um relógio, e dentro dele eu aninhei um movie clip com uma animação dos ponteiros. o que eu quero é que ao passar o mouse por cima desse relógio (botão) a animação do movie clip aninhado toque.

 

Eu já procurei bastante por esse código e não achei nenhum que funciona. O que eu estava tentando, pelos meus próprios conhecimentos foi colocar esse código no próprio botão:

 

on (release) {

relogio_bt.relogio_mc.gotoAndPlay(2);

}

 

Onde relogio_bt e relogio_mc são os respectivos nomes das instâncias do botão e do movie clip aninhado, e o motivo do gotoAndPlay(2) é devio a um "stop();" que eu coloquei na time lime para que ele não reproduza automaticamente, apenas quando o cursor estiver sobre ele.

 

Bom, ficarei extremamente agradecido caso alguma boa alma puder me ajudar com esse problema. No mais, valeu pessoal.

 

 

Leandro

 

Ah, apenas um adendo:

 

Eu não recebo nenhuma mensagem de erro no output, a coisa simplesmente não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal. Bem, acho que essa minha dúvida transmite o nível do meu conhecimento em action script (2.0 no caso, pois trabalho usando flash8). O meu problema é o seguinte:

Eu fiz um botão no formato de um relógio, e dentro dele eu aninhei um movie clip com uma animação dos ponteiros. o que eu quero é que ao passar o mouse por cima desse relógio (botão) a animação do movie clip aninhado toque.

 

Eu já procurei bastante por esse código e não achei nenhum que funciona. O que eu estava tentando, pelos meus próprios conhecimentos foi colocar esse código no próprio botão:

 

on (release) {

relogio_bt.relogio_mc.gotoAndPlay(2);

}

 

Onde relogio_bt e relogio_mc são os respectivos nomes das instâncias do botão e do movie clip aninhado, e o motivo do gotoAndPlay(2) é devio a um "stop();" que eu coloquei na time lime para que ele não reproduza automaticamente, apenas quando o cursor estiver sobre ele.

 

Bom, ficarei extremamente agradecido caso alguma boa alma puder me ajudar com esse problema. No mais, valeu pessoal.

 

 

Leandro

 

Ah, apenas um adendo:

 

Eu não recebo nenhuma mensagem de erro no output, a coisa simplesmente não funciona.

 

Então você tem um botão e um movieClip, ao passar o mouse por cima do botão, o movieclip roda e ao tirar o movieclip para??? é isso!? é simples meu caro.

 

on (rollOver) {
	MOVIECLIP.play();
}
on (rollOut) {
	MOVIECLIP.stop();
}

Vê se é isso que precisa, lembre-se que o MOVIECLIP de ser trocado pelo nome da instancia que você colocou no seu a animação, ou seja, se você tem um movieClip instanciado RELOGIO e dentro dele tem outro movieClip que está instanciado com PONTEIRO e a animação está no PONTEIRO, você deverá substituir a palavra MOVIECLIP por RELOGIO.PONTEIRO, sempre respeitando as maiusculas e minusculas.

 

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa tarde pessoal. Bem, acho que essa minha dúvida transmite o nível do meu conhecimento em action script (2.0 no caso, pois trabalho usando flash8). O meu problema é o seguinte:

Eu fiz um botão no formato de um relógio, e dentro dele eu aninhei um movie clip com uma animação dos ponteiros. o que eu quero é que ao passar o mouse por cima desse relógio (botão) a animação do movie clip aninhado toque.

 

Eu já procurei bastante por esse código e não achei nenhum que funciona. O que eu estava tentando, pelos meus próprios conhecimentos foi colocar esse código no próprio botão:

 

on (release) {

relogio_bt.relogio_mc.gotoAndPlay(2);

}

 

Onde relogio_bt e relogio_mc são os respectivos nomes das instâncias do botão e do movie clip aninhado, e o motivo do gotoAndPlay(2) é devio a um "stop();" que eu coloquei na time lime para que ele não reproduza automaticamente, apenas quando o cursor estiver sobre ele.

 

Bom, ficarei extremamente agradecido caso alguma boa alma puder me ajudar com esse problema. No mais, valeu pessoal.

 

 

Leandro

 

Ah, apenas um adendo:

 

Eu não recebo nenhuma mensagem de erro no output, a coisa simplesmente não funciona.

 

Então você tem um botão e um movieClip, ao passar o mouse por cima do botão, o movieclip roda e ao tirar o movieclip para??? é isso!? é simples meu caro.

 

on (rollOver) {
	MOVIECLIP.play();
}
on (rollOut) {
	MOVIECLIP.stop();
}

Vê se é isso que precisa, lembre-se que o MOVIECLIP de ser trocado pelo nome da instancia que você colocou no seu a animação, ou seja, se você tem um movieClip instanciado RELOGIO e dentro dele tem outro movieClip que está instanciado com PONTEIRO e a animação está no PONTEIRO, você deverá substituir a palavra MOVIECLIP por RELOGIO.PONTEIRO, sempre respeitando as maiusculas e minusculas.

 

 

Espero ter ajudado.

 

 

Então Jerfs, valeu pela tentativa, mas o negócio é que o movie clip que eu quero que toque ao passar o mouse sobre o botão, está aninhado dentro do próprio botão. O botão com o formato de relógio está no stage, o movie clipe que contem os ponteiros animados está dentro do botão. A minha dificuldade provavelmente é a de referenciar esse movie clip aninhado dentro do botão, pois pelo código que eu postei anteriormente, não funcionou, eu passava o mouse sobre o relógio e nada acontecia, os ponteiros permaciam parados.

 

O que eu fiz para construir esse botão foi:

 

Desenhei o relógio -> converti o relógio em um movie clip -> transformei esse mc em um botão (portanto, o mc agora está aninhado dentro do botão).

A dificuldade é chegar nesse movie clip para que ele toque. Será que ficou mais bem explicado?

 

De qualquer forma, valeu pela tentativa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora eu entendi melhor... você criou um MovieClip e depois converteu em botão! Faz o seguinte... volta pra movieClip, não usa botão não... depois que fizer isso coloca o código no primeiro frame:

 

onEnterFrame = function () {
MOVIECLIP.onRollOver = function (){
	this.play();
}

MOVIECLIP.onRollOut = function () {
	this.stop();
}
}

Se realmente quiser usar botão, crie um botão transparente separado.. e coloca aquele código que postei anteriormente.

 

Qualquer dúvida posta ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom vamos lá...

existe dois níveis de código...

o do botão (que é o que você está usando quando clica no botão e digita o código na caixa de actionScript)

e na timeline (que é o mais correto a se fazer, quando clico na timeline e digito o código na caixa de actionScript)

 

1º - se você coloca um código no botão (que é o seu caso) os comando irão agir naquele botão, então você tem que

colocar o código no botão que você quer que aja o mouse ao passar dispare o comando.

 

2º - o comando funciona a partir daquele botão ou seja se tive um botão dentro dele você tem que usar o this (ou seja a partir daqui);

 

fica assim:

on (rollOver) 
{      
  this.relogio_mc.gotoAndPlay(2);
}

on (rollOut) 
{        
  this.relogio_mc.stop();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Jerfs, o seu código funcionou perfeitamente mas eu gostaria de usar como botão por dois motivos:

1- Eu precisei colocar um efeito de glow, para quando o usuário passar o cursor sobre, ele verá que aquilo é um botão.

2- Eu precisarei usá-lo como um botão para controlar a reprodução na timeline.

Mas em último caso eu posso usar esse código e fazer o que você disse, um botão invisível por cima.

 

 

Hernani, eu já havia tentado o código:

 

on (rollOver) {

this.relogio_bt.relogio_mc.gotoAndPlay(2);

}

 

on (rollOut) {

this.relogio_bt.relogio_mc.stop();

}

 

visto que o relogio_mc está aninhado dentro do botão relogio_bt, porém, esse código não funcionou. A animação dos ponteiros não ocorre.

 

Muito obrigado a todos, caso alguém tenha outra solução, ficarei muito agradecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Leandro, tudo bem.

 

É possível você disponibilizar o fla pra gente conferir.

Eu uso AS3, não posso lhe ajudar com o action, mas penso que a lógica do funcionamento você possa aproveitar.

 

Se for do seu interesse, estou disposta a tentar.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tentei aqui, e fiz o seu relógio funcionar sem nenhum action.

 

É um botão com um movie clip aninhado apenas no estado over.

 

Apenas um detalhe, tem uma posição inicial dos ponteiros fixa, por exemplo 3 horas, ao passar o mouse os ponteiros se movimentam, ao retirar retorna direto para a posição inicial.

 

Fazer com que os ponteiros parem na posição exata em que o mouse foi retirado, e que reinicie a partir desse ponto, é um recurso que ainda não sei. Aí sim vai precisar de programação. Preciso ver isso para algo que desejo fazer.

 

Fiz na corrida, nada estiloso, só pra você conferir se é isso que precisa.

Publiquei no server, se quiser dar uma olhada --> Clique aqui

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tentei aqui, e fiz o seu relógio funcionar sem nenhum action.

 

É um botão com um movie clip aninhado apenas no estado over.

 

Apenas um detalhe, tem uma posição inicial dos ponteiros fixa, por exemplo 3 horas, ao passar o mouse os ponteiros se movimentam, ao retirar retorna direto para a posição inicial.

 

Fazer com que os ponteiros parem na posição exata em que o mouse foi retirado, e que reinicie a partir desse ponto, é um recurso que ainda não sei. Aí sim vai precisar de programação. Preciso ver isso para algo que desejo fazer.

 

Fiz na corrida, nada estiloso, só pra você conferir se é isso que precisa.

Publiquei no server, se quiser dar uma olhada --> Clique aqui

 

 

Abs

 

 

Muito obrigado a todos(a) que ajudaram! Elektra, era mais ou menos isso que eu queria sim, porém com um efeito de glow quando o mouse passasse sobre o relógio. Mas eu resolvi acatar a idéia do Jerfs e tirei o movie clip de dentro do botão, usei o código dele para reproduzir a animação e consegui fazer o efeito de glow por actionscript também. No fim das contas tudo deu certo e o código ficou assim:

 

//código para animação e efeito Glow do relógio

relogio_mc.onRollOver = function () {

relogio_mc.filters = [new flash.filters.GlowFilter(0x99FF00, 1, 30, 30, 1, 3, false, false)];

this.play(2);

}

relogio_mc.onRollOut = function () {

relogio_mc.filters = [new flash.filters.GlowFilter(0x99FF00, 1, 30, 30, 0, 3, false, false)];

this.stop();

}

 

O dito cujo é esse: http://www.swfcabin.com/open/1261588910

 

Mais uma vez, valeu demais pela ajuda pessoal!

 

ps- Ah, Elektra, dessa maneira os ponteiros permanecem na posição do momento em que o mouse é retirado, dê uma olhada.

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal que você conseguiu Leandro, ficou muito legal.

 

Eu tenho um código em AS3 com ROLL_OVER e ROLL_OUT que uso numa galeria de imagens com next e prev, mas ainda não tive tempo de me deter para adaptar para um banner com efeito paralax, são várias camadas de animação, e um bom punhado a mais de código, vou me puxar.

 

Excelente idéia compartilhar a solução que encontrou com o auxílio do Jerfs, será muito útil para outros colegas.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, deixa eu fazer a minha parte.

 

Fui furungar nos meus códigos e consegui fazer o que eu queria, ainda não apliquei o 3D do paralax (Flash CS4), mas o princípio básico é o mesmo.

 

No meu caso ficou assim, um movie clip externo nomeado como paralax, na timeline interna o action, um botão invisível e um movie clip anima. Na timeline interna do movie clip anima, uma camada de action com "stop();" no frame inicial e "gotoAndPlay(2)" no final, uma máscara e 3 layers também convertidas em mcs e animadas.

 

Para algo simples, em AS3 fica assim:

 

btn.addEventListener(MouseEvent.ROLL_OVER, desce);
btn.addEventListener(MouseEvent.ROLL_OUT, desceRemove);

function desce(evento:MouseEvent):void{
	anima.addEventListener(Event.ENTER_FRAME, desceFull);
}

function desceFull(evento:Event):void{
	anima.nextFrame();
}

function desceRemove(evento:MouseEvent):void{
	anima.removeEventListener(Event.ENTER_FRAME, desceFull); 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante estava procurando por esse raciocínio. Veio em boa hora.

 

 

 

Bom, deixa eu fazer a minha parte.

 

Fui furungar nos meus códigos e consegui fazer o que eu queria, ainda não apliquei o 3D do paralax (Flash CS4), mas o princípio básico é o mesmo.

 

No meu caso ficou assim, um movie clip externo nomeado como paralax, na timeline interna o action, um botão invisível e um movie clip anima. Na timeline interna do movie clip anima, uma camada de action com "stop();" no frame inicial e "gotoAndPlay(2)" no final, uma máscara e 3 layers também convertidas em mcs e animadas.

 

Para algo simples, em AS3 fica assim:

 

btn.addEventListener(MouseEvent.ROLL_OVER, desce);
btn.addEventListener(MouseEvent.ROLL_OUT, desceRemove);

function desce(evento:MouseEvent):void{
anima.addEventListener(Event.ENTER_FRAME, desceFull);
}

function desceFull(evento:Event):void{
anima.nextFrame();
}

function desceRemove(evento:MouseEvent):void{
anima.removeEventListener(Event.ENTER_FRAME, desceFull); 
}

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.