gpt4 book ai didi

javascript - 代码如何检测是否在动画帧内运行?

转载 作者:行者123 更新时间:2023-11-29 10:07:35 25 4
gpt4 key购买 nike

如果将某个函数传递给 requestAnimationFrame(),该函数如何检测到它是在动画帧内调用的?

现在

function someFunction() {
if (/* What goes here? */) {
console.log('Inside animation frame.')
}
else {
console.log('Not inside animation frame.')
}
}

// The following lines should not be modified for the answer.
someFunction() // logs "Not inside animation frame."
requestAnimationFrame(someFunction) // eventually logs "Inside animation frame."

不应修改最后两行。我很想知道我是否可以在不需要用户记住以两种不同方式使用该功能的情况下检测到这种情况。最终用户应该像平常一样使用函数,而不知道我的函数检测到用例。

最佳答案

目前无法在 Javascript 中获取调用代码的上下文,因此除非更改 requestAnimationFrame(),否则您无法执行所需的操作,但值得庆幸的是您可以这样做。试试这个...

// save a reference to the existing method and then override it...
window._requestAnimationFrame = window.requestAnimationFrame;
window.requestAnimationFrame = function(callback) {
return window._requestAnimationFrame(function() {
callback(true);
});
}

function someFunction() {
if (arguments.length && arguments[0]) {
console.log('Inside animation frame.')
}
else {
console.log('Not inside animation frame.')
}
}

someFunction();
requestAnimationFrame(someFunction);

关于javascript - 代码如何检测是否在动画帧内运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com