Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
joao_n

Fechar um MovieClip e voltar ao stage em AS3

Recommended Posts

joao_n

Boas.

Estou a fazer uma animação, com um jogo, etc.. etc....

E tenho uma duvida...

Alias são duas.

Eu para o jogo na animação estou a usar o Load do SWF para não deixar o FLA da animacao demasiado pesado.

e ao fazer o load, tenho um botao no stage do FLA da animação para voltar ao inicio. ao carregar nesse botao, como consigo que o Load do swf desapareca????

:S

A minha outra duvida é a seguinte.

Tenho os credito feitos num movieClip. e tenho o acesso ao movie clip feio pelo MouseEvent, e queria que no fim do movie clip tivesse um botao para voltar a frame 1, mas do stage.

se meter no movieClip..

(..) gotoAndStop(1), ele volta a frame 1, mas do movieClip e não do stage.

tambem ja tentei o stage.gotoAndStop, etc.. e nada..

:S

como posso resolver isto, sem ter de criar a animacao no proprio stage???

Cumps

Share this post


Link to post
Share on other sites
deejorg

Boas

A tua primeira duvida é um bocado complexa visto que é preciso perceber bem como funciona o Garbage Collection.

Vou te enviar uma apresentação que explica isso http://www.gskinner.com/talks/resource-management/. Se fores ao slide 31 encontras os passos que tens de fazer para remover com sucesso.

Explicando por alto tens de parar tudo dentro desse swf, remover eventos, remover do stage, fazer loader.unload() e remover qualquer ligação a ele.

Em player 10 existe loader.unloadAndStop(), não sei ate que ponto é eficaz.

Quanto á segunda dúvida podes usar MovieClip( root ).gotoAndStop(1);

É a maneira fácil de o fazer, mas aconselho a aprenderes a usar o sistema de eventos de AS3 que é mais correcto. Podes ler aqui!

Dúvida é só dizer  :D

Share this post


Link to post
Share on other sites
joao_n

Obrigado!!!!  :cheesygrin:

o MovieClip( root ).gotoAndStop(1); resultou na perfeição!!!!

para o Load ainda estou a ultimar umas coisas para depois o testar..  :D

mais uma vez obrigado :)

edit: Usei agora o loader.unload(), e funciona na perfeição...  :D

Share this post


Link to post
Share on other sites
chuckytuh

é preciso ter em atenção que no AS3 o root é o objecto parent do movieclip actual, ora, se por acaso tens um movieclip que é carregado externamente (por um swf externo) entao o root nao será o mesmo objecto que um movieclip que está contido no swf principal!

O melhor seria mesmo fazeres algo do genero

Dentro do movieclip, podes ter este código dentro de uma função que é executada por um clique ou algo do genero

dispatchEvent(new Event("fecharMovieClip"), true, true));

e depois no stage, onde tens o movieclip como child, fazes

movieclip.addEventListener("fecharMovieClip", fecharMovieClipHandler);
function fecharMovieClipHandler(e:Event):void{
     this.removeChild(movieclip);
}

Julgo que algo deste género resolveria (estou a escrever aqui o código um bocado de cor).

Share this post


Link to post
Share on other sites
joao_n

mas o dispatchEvent é  alguma função do AS3?

o unLoad do evento carregado anteriormente funciona bem...

mas agora estou com outro problema...

Na animação que estou a fazer meti um joguinho bastante simples nada de mais. apenas um carrito que anda pelo stage tem uma pista etc... e quando eu testo se ele faz uma colisao com um objecto que quero que perca pontos ele esta sempre a perder pontos ou seja..

trocando por miúdos.

estou a usar o hitTestObject ele se colidir com "donuts" então ganha pontos, se sai do stage criei uma caixa sem preenchimentos para testar a colisão, se os pontos forem < 0 então ele perde. mas se tiver 50 pnts, e ele bater e nao sair de la rapidamente chega a 0, a contagem não para.

tenho algo do tipo.

if(carro.hittesteobject(donut))

{

contaPontos-=2;

}

ou seja ele esta sempre a correr o IF e apenas o devia fazer uma vez..  :S..

Outra coisa.

Quando crio um EXE do ficheiro, ele nao me grava os sons... mas isso é porque estou a usar o URLRequest para os ficheiros de som, para nao carregar o .FLA

se pretender publicar o trabalho, apenas me basta criara pasta com o EXE e com as musicas dentro de uma pasta que ele vai fazer o Request automaticamente certo??

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.