animação Keyframe sem quadros: Haxe
Pergunta
Eu gostaria de fazer simples de animação (looping) (movendo, mudando alfa etc) em Haxe (Flash9). Eu não tenho nada que se assemelha a quadros em minha biblioteca, apenas ativos único quadro.
Desde que eu sou um novato. Não estou necessariamente procurando uma estrutura sofisticada. Eu ficaria feliz com algo rápido e sujo. Talvez if
s verificando o frame
(variável de classe) e linearmente interpolação dos valores.
class MyClass extends Sprite {
static var frame:Int = 0;
static inline var framerate:Int = 25;
static function main() {
var app:MyClass = new MyClass();
flash.Lib.current.addChild(app);
}
private function new() {
super();
// init assets here
var myTimer:Timer = new Timer(1000/framerate);
myTimer.addEventListener(TimerEvent.TIMER, animate);
myTimer.start();
}
function animateForeground(event:TimerEvent) {
frame = (frame + 1) % 1000;
// set new values depending on frame
}
}
Eu sei que a idéia básica de animação quadro-chave. O que eu estou procurando é mais sobre como estruturar esta parte do programa .
Você pode por favor me dar algumas dicas sobre como devo proceder?
Solução
Se você quer fazer animações Gostaria muito recomendo usar um href="http://code.google.com/p/tweener/" rel="nofollow noreferrer"> interpolação biblioteca , embora eu entendo que você pode querer aprender o básico antes de "batota" por eles.
Eu recomendaria ligar suas animações para o evento ENTER_FRAME em vez de um temporizador correndo na mesma velocidade como o seu framerate. Não há realmente nenhuma necessidade de dissociar estes dois, uma vez que o temporizador não é mais confiável do que o evento ENTER_FRAME, e não há necessidade de mover coisas ao redor se ele não pode ser visto de qualquer maneira.
Além disso, eu não acho que você deve se concentrar muito em animação "quadro-chave". Isso é um conceito útil quando você Have keyframes, se você não fazê-lo da maneira mais prática apenas para fazer o que se sente como a melhor maneira de implementar isso.
Gostaria de colocar algum código aqui, mas eu estou tendo um pouco de dificuldade em chegar com qualquer desde que eu não sou realmente certo o que você está tentando alcançar aqui.
Outras dicas
É provavelmente vale a pena ler chapter7_tweening.pdf do livro de Robert Penner, embora agora muito desatualizado em termos do código, que abrange o conceito de interpolação.
Mas talvez não vale a pena reinventar a roda ...
Feffect 's é um bom motor plataforma interpolação cruz, Actuate é mais simples de usar e rápido. Usando macros para interpolação é talvez a melhor abordagem, mas talvez seja um pouco complexo para começar ( tinkerbell ).