Ir para conteúdo

Arquivado

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

Antonio Eduardo Soares

Como acessar funções do MovieClip pai através do Mc filho?

Recommended Posts

Olá pessoal, estou fazendo um site em flash e resolvi fazê-lo da seguinte maneira:

 

Tem uma página index.swf que contém um menu com acesso a várias páginas e que vou chamar aqui de MovieClip Pai para melhor entendimento. Quando alguém clica no botão "empresa", ele carrega um MovieClip externo "empresa.swf" que vou chamar aqui de MovieClip Filho.

 

Até aí tudo bem, não houve problemas, entretanto eu criei um botão dentro do MovieClip Filho "empresa.swf" que deveria acessar uma função do MovieClip Pai "index.swf". Como eu faço isso? Já tentei de tudo e nada dá certo...

 

Eu criei no MovieClip Filho "empresa.swf" um botao.AddEventListener(MouseEvent.CLICK, MovieClip(root).funcaoDesejada), mas não deu certo.

 

Alguns me falaram para usar MovieClip(parent.parent) no lugar de MovieClip(root), mas daí surgiram algumas dúvidas: quantos "parent" e vou usar? Eu já testei com vários "parent" e não deu certo, não sei o que acontece...

 

Se alguém souber de algum jeito mais fácil de fazer isso eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, estou fazendo um site em flash e resolvi fazê-lo da seguinte maneira:

 

Tem uma página index.swf que contém um menu com acesso a várias páginas e que vou chamar aqui de MovieClip Pai para melhor entendimento. Quando alguém clica no botão "empresa", ele carrega um MovieClip externo "empresa.swf" que vou chamar aqui de MovieClip Filho.

 

Até aí tudo bem, não houve problemas, entretanto eu criei um botão dentro do MovieClip Filho "empresa.swf" que deveria acessar uma função do MovieClip Pai "index.swf". Como eu faço isso? Já tentei de tudo e nada dá certo...

 

Eu criei no MovieClip Filho "empresa.swf" um botao.AddEventListener(MouseEvent.CLICK, MovieClip(root).funcaoDesejada), mas não deu certo.

 

Alguns me falaram para usar MovieClip(parent.parent) no lugar de MovieClip(root), mas daí surgiram algumas dúvidas: quantos "parent" e vou usar? Eu já testei com vários "parent" e não deu certo, não sei o que acontece...

 

Se alguém souber de algum jeito mais fácil de fazer isso eu agradeço.

 

Tenta stage.parent.

ou empresa.botao.addEventListener(... no index.

 

Não sei se vai funcionar,

 

mas eu achei isso:

http://groups.google.com/group/macromedia.flash/browse_thread/thread/7a6b8c3f7b2c54aa

Nesse link de acordo com o Travis: MovieClip(parent).function("bla");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim pra testar e ve se acha, não estou muito habituado a escrever no frame, mas pra testar serve:

 

import flash.display.MovieClip;

 

trace((stage.getChildAt(0) as MovieClip).getChildByName("meuMenu"));//meuMenu é o nome de instancia do menu que está no index, o trace deve retornar [object MovieClip] ou o nome da classe que estiver usando para o menu

 

abs

Leandro Amano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise sobre o uso do DispatchEvent para fazer a comunicação, ou seja, o swf filho chamar uma função no pai.

 

No lugar de 'root', use >> content.

 

 

Não domino o uso, apenas tenho um exemplo que ganhei de um colega (swf externo removendo a si mesmo),serve para dar uma idéia da sintaxe adequada.

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um exemplo concreto aqui, se quiser, me envie um email que repasso os fontes, amano.leandro@gmail.com, o codigo é o mesmo que inseri acima.

 

abs

Leandro Amano

 

Oi Leandro, posso lhe enviar meu email por mensagem privada?

 

Também tenho interesse para estudo.

 

 

O exemplo que tenho usa um code com alguns trechos além do meu conhecimento.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro que sim, me envia um email direto:

amano.leandro@gmail.com

 

Vou arrumar tempo pra colocar em algum lugar p download outra hora.

 

abs

 

Muito obrigada, tô enviando agora mesmo pelo Gmail.

 

Informo o nick usado no iMasters.

 

Rodo no CS6.

 

 

Abraços :grin:

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.