gpt4 book ai didi

javascript - 如何在 RequestAnimationFrame 中使用带参数的函数?

转载 作者:行者123 更新时间:2023-11-30 06:27:10 24 4
gpt4 key购买 nike

好的,所以我在堆栈overflow 和网络上搜索了如何使用 RequestAnimationFrame 并包含一个函数WITH PARAMETERS 所以这是我的代码问题

requestAnimationFrame(move);
function move(speed) {
blackSquare.position.y -= 1;
var moveBS = blackSquare.position.y - 12.5;
//"stoping it from moving" //begin
if (moveBS > 0) {
requestAnimationFrame(move);
moveBS = blackSquare.position.y + 12.5;
}
else {
console.log("SUCCESS!");
}
//"stoping it from moving" //ends
}

这可行,但我希望“移动”有参数,所以当我尝试时

requestAnimationFrame(move(1));
function move(speed) {
blackSquare.position.y -= speed;
var moveBS = blackSquare.position.y - 12.5;
//"stoping it from moving" //begin
if (moveBS > 0) {
requestAnimationFrame(move);
moveBS = blackSquare.position.y + 12.5;
}
else {
console.log("SUCCESS!");
}
//"stoping it from moving" //ends
}

我的 blackSquare 出现了一秒钟,然后消失了。在 Chrome 控制台上出现错误“Uncaught TypeError: Type error”,指出第二个提供的代码中的第一行。然后是“成功!”

    requestAnimationFrame(move(1));
function move(speed) {
blackSquare.position.y -= speed;
var moveBS = blackSquare.position.y - 12.5;
//"stoping it from moving" //begin
if (moveBS > 0) {
requestAnimationFrame(move(1));
moveBS = blackSquare.position.y + 12.5;
}
else {
console.log("SUCCESS!");
}
//"stoping it from moving" //ends
}

当我同时更改两者时,结果略有不同,因为方 block 消失然后立即出现在屏幕末尾(我的意图是但动画缓慢)控制台日志看起来像这样

SUCCESS!
Uncaught TypeError: Type error

代替

Uncaught TypeError: Type error
SUCCESS!

有人可以帮助我完成这项工作并告诉我我的代码中到底发生了什么吗?

最佳答案

我相信你可以这样做:

var move_param = 1; // Whatever your move parameter needs to be

requestAnimationFrame(function() {
move(move_param);
});

在这里,您将一个匿名函数传递给 requestAnimationFrame,后者会使用提供的参数调用 move

关于javascript - 如何在 RequestAnimationFrame 中使用带参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336119/

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