哈克斯:无帧关键帧动画
题
我想在 Haxe (flash9) 中做简单的(循环)动画(移动、改变 alpha 等)。我的库中没有任何类似于框架的东西,只有单帧资源。
由于我是初学者。我不一定要寻找一个复杂的框架。我会很高兴做一些又快又脏的事情。或许 if
正在检查 frame
(类变量)并对值进行线性插值。
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
}
}
我知道关键帧动画的基本思想。我正在寻找更多关于 如何构建这部分程序.
您能给我一些关于我应该如何进行的指示吗?
解决方案
如果你想要做的动画我非常建议您使用补间库,虽然我明白,你可能想“作弊”过去之前学习的基础知识。
我会建议你的动画挂接到ENTER_FRAME事件,而不是在相同的速度为您的帧率运行的定时器。真的没有必要去耦这两个,因为定时器没有任何比ENTER_FRAME事件更可靠,并且有在到处移动的东西,如果它不能无论如何认为不需要。
另外,我不认为你应该集中那么多的“关键帧”动画。也就是说,当你的一个有用的概念带有关键帧,如果你不这样做它的方式更实际只是做什么感觉来实现这个的最佳方式。
我会把一些代码在这里,但我有一个硬一点点时间想出任何,因为我真的不知道你想在这里实现什么。
其他提示
这可能值得一读 Chapter7_补间.pdf 来自 Robert Penner 的书,虽然现在就代码而言已经非常过时,但它涵盖了补间的概念。
但也许不值得重新发明轮子......
F效应是一个很好的跨平台补间引擎, 启动 使用起来更简单、速度更快。使用宏进行补间可能是最好的方法,但开始可能有点复杂( 小叮当 ).
不隶属于 StackOverflow