Vla*_*rus 7 qt canvas qml qtquick2
我正在尝试使用QML Canvas.requestAnimationFrame绘制一些自定义动画.我期望为每个帧调用一次提供的回调,大约每秒60次.我的代码是:
Canvas {
id: canvas
width: 600
height: 600
function draw() {
}
Component.onCompleted: {
var i = 1;
function drawFrame() {
requestAnimationFrame(drawFrame)
console.log("Frame callback: " + i++)
draw()
}
drawFrame()
}
onPaint: {
draw()
}
}
Run Code Online (Sandbox Code Playgroud)
我看到的是回调被更频繁地调用.计数器在几秒钟内达到70000,之后应用程序变得完全没有响应.
我究竟做错了什么?
Qt 5.9 之前有一个错误。requestAnimationFrame()此错误已得到修复。
此代码按预期工作,以保持画布不断重绘。
Canvas {
width:100; height:100;
property var ctx
onAvailableChanged: if (available) ctx = getContext('2d');
onPaint: {
if (!ctx) return;
ctx.clearRect(0, 0, width, height);
// draw here
requestAnimationFrame(paint);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |