gpt4 book ai didi

javascript - 事件监听器完成后运行函数

转载 作者:行者123 更新时间:2023-12-03 02:43:28 27 4
gpt4 key购买 nike

我有以下代码来检查是否有陀螺仪可供用户交互。我通过以下方式执行此操作:

function check_user_hardware(){
window.addEventListener("devicemotion", function(event){
if(event.rotationRate.alpha || event.rotationRate.beta || event.rotationRate.gamma){
if (!gyroscope) {
gyroscope = true;
current_interaction_mode = 'gyroscope_option';
set_user_ui_elements();
}
}else{
followMouse = true;
current_interaction_mode = 'followMouse_option';
console.log("checked for motion");
set_user_ui_elements();
window.addEventListener('mousemove', get_user_mouse_pos);
}
calculate_rotation_mesh_pos(event.rotationRate.beta, event.rotationRate.gamma);
}, function(){
console.log("generate_scene???");
generate_scene();
});
}

我遇到的问题是在检查后生成了一些场景。
但是这个场景需要在检查中首先设置一个var。但检查时间很长,所以我在检查完成后添加了回调。
但这个回调永远不会触发...为什么?换句话说,generate_scene??? 永远不会被记录,generate_scene(); 永远不会运行。

为什么会发生这种情况?执行此操作的正确方法是什么?

如果有任何不清楚的地方,请告诉我,以便我可以澄清:)

最佳答案

你的问题是: .addEventListener 方法中的第三个参数是函数,它不应该是,因为在文档中,如果恰好是“useCapture”,则第三个参数是 bool 值。尝试在 check_user_hardware() 之外声明generate_scene函数,然后调用它

calculate_rotation_mesh_pos(event.rotationRate.beta,event.rotationRate.gamma);
generate_scene();

它可能会起作用。

关于javascript - 事件监听器完成后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48211962/

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