我正在使用GWT画布用requestAnimationFrame
全屏绘制50个相同的16x16图像(在draw()中),主循环如下:
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
public void execute(double timestamp) {
mainLoop(deltaTimeInMs);
AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
}
}, canvasElem);
void mainLoop(double deltaTime) {
calcFPS(deltaTime);
clearContext();
update(deltaTime);
draw();
}
我使用ClientBundle
作为DataResources
存储图像。它们将转换为图像并转换为ImageElement
,以便能够调用context.draw。
渲染50张图像之前的FPS约为60FPS。当它们被渲染时,FPS大约是20FPS。 (在chrome和mozilla中)在DEV模式下。
我认为图片加载可能有问题。
答案 0 :(得分:-3)
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
public void execute(double timestamp) {
mainLoop(deltaTimeInMs);
AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
}
}, canvasElem);
void mainLoop(double deltaTime) {
calcFPS(deltaTime);
clearContext();
update(deltaTime);