gpt4 book ai didi

dart - onMouseMove监听器仅在光标离开并重新进入文档后才开始接收事件

转载 作者:行者123 更新时间:2023-12-03 04:07:15 25 4
gpt4 key购买 nike

我有CanvasElement,它要求在单击时锁定指针,然后使用onMouseMove侦听器(将在测试第一人称控件)反复将MovementX和MovementY传递给函数。

第一次(在页面加载后立即)运行良好,但是如果我按Escape键并再次单击 Canvas ,它将成功锁定光标,但不会生成MouseEvent传递给onMouseMove侦听器。

如果我按Escape键并将鼠标移到文档外部(不受标记限制的任何地方),请将其移回到文档中并单击 Canvas ,一切将再次正常运行。

有什么想法导致这种奇怪的行为吗?

_canvas.onMouseMove.listen((MouseEvent e) {
if (document.pointerLockElement == _canvas) {
print(e.movement); // debug print
orientateCamera(e.movement);
}
});

_canvas.onClick.listen((e) {
if (document.pointerLockElement == null) {
_canvas.requestPointerLock();
}
});

所有描述的行为都包含在这些代码行中。

最佳答案

我不知道element.requestPointerLock()是做什么的,但是
MDN - Element.requestPointerLock指出您应该听pointerlockchangepointerlockerror来查看请求是否成功。您似乎也没有使用document.exitPointerLock()

MDN Pointer Lock API似乎是一个不错的介绍。

关于dart - onMouseMove监听器仅在光标离开并重新进入文档后才开始接收事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066061/

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