javascript – 向requestAnimationFrame返回的函数添加其他参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 向requestAnimationFrame返回的函数添加其他参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1703字,纯文字阅读大概需要3分钟。
内容图文
我正在寻找创建一个函数,使用requestAnimationFrame和delta time在HTML5画布上滚动图像元素x像素.我无法弄清楚的是当requestAnimationFrame allready用一个参数(一个DOMHighResTimeStamp)回调我的函数时,如何为我的函数添加更多参数.我很确定以下代码不起作用:
function scroll(timestamp, distanceToScroll, secondsToScroll) {
//delta = how many milliseconds have passed between this and last draw
if (!lastDraw) {var lastDraw = timestamp;};
delta = (0.5 + (timestamp - lastDraw)) << 0; //bitwise hack for rounding integers
lastDraw = timestamp;
//speed (pixels per millisecond) = amount of pixels to move / length of animation (in milliseconds)
speed = distanceToScroll / secondsToScroll;
//new position = current position + (speed * delta)
position += (speed * delta);
context.drawImage(myImage,0,position,50,50/*of 200*/,0,0,100,100);
requestAnimationFrame(scroll(timestamp, distanceToScroll, secondsToScroll));
};
//later...
scroll(timestamp, 100, 5)
scroll(timestamp, 10, 20)
我的问题是我不知道如何强制requestAnimationFrame继续使用我的附加参数来调用我的滚动函数,当默认情况下它只在callback上传递一个参数(时间戳)时.那么我该如何添加更多参数(或强制rAF将时间戳放在我的’timestamp’参数中)?
解决方法:
您的requestAnimationFrame语句的评估结果为:
> scroll(timestamp,distanceToScroll,secondsToScroll),其中timestamp未定义.它会抛出错误或返回undefined
> window.requestAnimationFrame在没有参数的情况下执行,因此没有回调
传递一个使用所需参数调用滚动的匿名函数应该可以解决问题:
requestAnimationFrame(function(timestamp) {
scroll(timestamp, distanceToScroll, secondsToScroll));
});
评估结果如下:
>使用匿名函数作为回调调用window.requestAnimationFrame
>以时间戳作为第一个参数调用匿名函数
>使用当前时间戳,distanceToScroll和secondsToScroll作为参数调用scroll
内容总结
以上是互联网集市为您收集整理的javascript – 向requestAnimationFrame返回的函数添加其他参数全部内容,希望文章能够帮你解决javascript – 向requestAnimationFrame返回的函数添加其他参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。