Acho que qualquer pessoa que mexe diáriamente com flash já teve pelo menos uma vez que repetir um bloco inteiro de animação para suavizar a transição entre telas, e que convenhamos é um trabalho chato e um tanto tosco de se executar propício a dar muitos problemas.
Pensando nisso eu pesquisei na web no google alguma maneira de fazer isso um pouco mais inteligente, e acabei achando um código de “Reverse Frames“. Bom, mas ainda não era isso que eu precisava, mesmo porque achei o código um pouco embolado e tendo colocar muitos parâmetros pra fazer o “bicho” funfar na moral, e acabei montando o codigozinho abaixo:
Essa versão é baseada em um protótipo de MovieClip, ou seja, todo o MovieClip colocado no projeto herda o método:
MovieClip.prototype.playReverse = function():Void {
this.onEnterFrame=function() {
if (this._currentframe != 1) {
this.prevFrame();
} else {
delete this.onEnterFrame;
}
}
}
E abaixo tem um complemento, na real, versão do código acima baseada em uma variável global, que pode ser enxergada por todo o projeto. Bem útil para quaisquer outro objeto que não seja MovieClips que se deseja usar o método;
_global.playReverse = function(obj:MovieClip):Void {
obj.onEnterFrame=function() {
if (obj._currentframe != 1) {
obj.prevFrame();
} else {
delete obj.onEnterFrame;
}
}
}
Para download: