Pergunta

Eu quero MoviveClips animados / Sprite objetos como smootly possível. No entanto, até agora o único método que funciona é colocar o código de movimento para o manipulador de eventos EnterFrame. Há um problema com esta abordagem: quando o framerate em uma máquina específica está abaixo do framerate desejado, em seguida, todo o jogo fica mais lento. Eu quero ser capaz de fazer isso de uma forma independente do tempo.

Foi útil?

Solução

Existem duas maneiras de fazer animação programático dentro do Flash player. O primeiro você já apontou usando um onEnterFrame. No entanto, como você já deve ter notado, para obter uma animação suave você precisa aumentar a taxa de quadros total de seu filme. Isso também irá aumentar a carga da CPU para todo o período de tempo que seus SWF é executado. Isso não é algo que você sempre quis.

A outra maneira de fazer animação programático é usando um timer. Dentro de um manipulador de temporizador é possível chamar uma função chamada updateAfterEvent que irá atualizar a tela independente do FPS que você definiu para o seu SWF. Portanto, usando um timer folhas de uma porta de entrada para fazer animação suave dentro do Flash player sem aumentar a taxa global de chassis do SWF.

Dois anos atrás, ou assim me propus a criar minhas próprias bibliotecas tween para o Flash (por causa das minhas frustrações com as bibliotecas tween então existentes disponíveis). I lançado sob o nome Coretween e esta biblioteca permite, entre outras coisas, escolher o tipo de animação que você prefere para cada interpolação indivíduo. Na página de documentação Dou um exemplo da diferença entre o quadro baseado e animação baseada no tempo. O exemplo SWF nessa página é executado em 12 fps, mas como você pode ver, o círculo menor tweens muito mais suave porque é controlado por um temporizador que carrapatos em 60 fps e atualiza a tela em dependia da taxa de quadros SWF. Tenha em mente que mesmo o temporizador carrapatos em 60 fps em realidade o Flash Player nunca será capaz de atingir essa taxa de quadros. No entanto, ele vai tentar atingir essa taxa de quadros que resulta em uma suave animação muito geral.

Infelizmente, até agora eu não fui capaz de lançar uma versão 1.0 da minha biblioteca, mas, tanto quanto eu sei que é bastante estável. Você é mais que bem-vindos para usá-lo de qualquer forma você vê o ajuste. Eu usei Coretween em muitas produções comerciais incluindo este que fizemos para stgeorge banco aqui na Austrália.

Outras dicas

Aqui estão algumas Actionscript bibliotecas de animação com base:

TweenMax

Tweener

Ambos trabalham bem, e deve ajudá-lo com o que você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top