Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

joao_n

Fechar um MovieClip e voltar ao stage em AS3

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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??

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.