[LayaAir3][3.x]求教如何手动停止拖拽事件等输入事件

比如持续拖拽时,如果窗口焦点发生改变,拖拽事件不会停止,想停止拖拽的话要怎么做呢?
 
虽然可以做个假的停止,(比如加个判断,或者直接执行相关函数)让他看起来好像已经经历过了停止一样...但是这样做的话,返回窗口后会仍会占用交互(表现为:窗口获得焦点后,需要再点一下,这样才能停止之前的拖拽事件,之后才能继续响应其他交互)
 
之前好像是查到过laya可以模拟按键事件消息的,能做到在游戏中模拟鼠标真实的抬起,自动触发onMouseDragEnd.但是说什么也找不到了(也可能是自己记混了,可能当时看的是unity或者godot)
 
总之,请问想手动停止某个按键或鼠标,或者模拟事件,该怎么做呢?
(场景:目前使用了拖拽来实现虚拟摇杆,当窗口被切换时,拖拽不会主动停止,虽然可以加个pressed的判断,但是效果不够理想,想了解一下有没有更好的方法,比如模拟鼠标抬起)
已邀请:

Laya_Fred

赞同来自:

您好,在切换窗口导致窗口焦点改变的时候,可以通过监听Focus事件或者Focus_Change事件来监听到改变,并重置拖拽的内容来停止拖拽事件,比如虚拟摇杆中也增加焦点事件监听,在触发焦点改变事件之后可以记录当前摇杆位置,再焦点改变回来还原,或者直接重置摇杆位置呢。

要回复问题请先

商务合作
商务合作