Alow galera.
Quem nunca teve aquela necessidade de voltar uma animação de um MovieClip via Actionscript, sem precisar de refazer a animação, seja de um botão ou até mesmo de um movimento complexo. Para isso, coloque o seguinte código no primeiro frame do seu flash (ou crie um arquivo .as para ser compartilhado e inclua-o):
MovieClip.prototype.voltar = function(frame, qFrm) {//cria o movieClp de controle
var voltarControl = this.createEmptyMovieClip(“voltarControl”, this.getNextHighestDepth());
//averigua se a veriável frame é indefinida, e seta como frame 1
if (frame == undefined) {
frame = 1;
}
//se a qFrm não for definida, pula de 1 em 1
if (pStop == undefined) {
voltarControl.onEnterFrame = function() {
if (this._parent._currentframe != frame) {
this._parent.prevFrame();
} else {
delete this.onEnterFrame;
}
};
} else {
//se a qFrm for definida, pula na qtd informada
voltarControl.onEnterFrame = function() {
if (this._parent._currentframe>frame) {
this._parent.gotoAndStop(this._parent._currentframe-qFrm);
//vendo o restante
if (this._parent._currentframe<=qFrm) {
qFrm = this._parent._currentframe-1;
}
} else {
delete this.onEnterFrame;
}
};
}
};
A sintaxe da função é meuMc.voltar(frame,qFrm);
frame > Até qual frame você que que volte a animação, se não informado, volta até o 0;
qFrm > Informa de quantos em quantos frames a animação deve voltar, se não informado, o valor padrão é 1. Caso seja informado 3, por exemplo, a animação volta de 3 em 3 frames, sendo mais rápida.
Para interromper este prototype, caso necessário, é só deletar o onEnterFrame que fica no voltarControl, desta maneira:
delete meuMc.voltarControl.onEnterFrame;É isso aí galera. Espero que ajude.
Baixe os arquivos aqui.









#1 por Rafael em Fevereiro 14th, 2008
Olá,
há como fazer a função prototype parar depois de acionada?
Isto é, um botão de stop funciona com a função prototype?
Estou meio desesperado pq o meu cliente faz questão disso e eu não consigo descobrir uma maneira de resolver o problema. Veja aqui: http://www.cvdesign.com.br/portifolio1.swf
Clique em forward, depois em back e tente apertar o botão de stop. Simplesmente não funciona!
Muito obrigado pela atenção e desculpe qualquer coisa…
Rafael
#2 por Weverton Naves em Fevereiro 15th, 2008
Amigo, como esta função cria o mc voltarControl e seta um enterFrame nele para fazer o retrocesso, seria simplesmente deletar este onEnterFrame, da seguinte maneira:
delete meuMC.voltarControl.onEnterFrame;
#3 por Frank Tramontin em Março 5th, 2009
Muito Boa a matéria ja fiz grandes esqueminhas!
Mas agora precisei de gerar a idéia de uma animação reversa só que puxando de swf, ou seja eu crio uma pagina que vai ter o cabeçalho e quando eu clico no outro botão queria que a animação que esta na tela voltasse e abrisse a outra!! Só que cada animação é swf separados!!
Tem como você me dar uma luz de como fazer isso??
Abralços
#4 por Frank Tramontin em Outubro 27th, 2009
Muito Boa a matéria ja fiz grandes esqueminhas!
Mas agora precisei de gerar a idéia de uma animação reversa só que puxando de swf, ou seja eu crio uma pagina que vai ter o cabeçalho e quando eu clico no outro botão queria que a animação que esta na tela voltasse e abrisse a outra!! Só que cada animação é swf separados!!
Tem como você me dar uma luz de como fazer isso??
Abralços
#5 por Weverton Naves em Março 27th, 2009
Bom, eu faria uma função que carregaria esses swfs.
Daí na hora que vc carregá-los, em vez de tocar do primeiro frame, comece a tocar do segundo.
No primeiro frame vc coloca a chamada para a função de carregamento.
Para desativar esse link e ativar outro, faça a animação reversa, que quando ele chegar no primeiro frame vai chamar o novo swf.
Flw.