如何阻止所有鼠标触摸输入到我的 Actionscript 3 Starling 游戏中?
基本上我需要在一段时间内忽略所有触摸事件。
如何阻止所有鼠标触摸输入到我的 Actionscript 3 Starling 游戏中?
基本上我需要在一段时间内忽略所有触摸事件。
如果您不希望对象可触摸,则可以禁用“可触摸”属性。当它被禁用时,对象及其子对象都不会再收到任何触摸事件。
无需添加新的显示对象来防止触摸。
this.touchable = false;
开发了一个快速的解决方案!基本上创建一个与屏幕大小相同的 Quad,并将其添加到最前面的图层。
添加到最前面层文件的 init() 函数:
Starling.current.addEventListener('TOUCH_BLOCKER_ENABLE', touchBlockerEnable);
Starling.current.addEventListener('TOUCH_BLOCKER_DISABLE', touchBlockerDisable);
然后定义这些函数:
private function touchBlockerEnable(e:Event):void
{
if(!_quad)
{
_quad = new Quad(Starling.current.stage.width,Starling.current.stage.height,0xFFE6E6);
_quad.x = 0;
_quad.y = 0;
_quad.alpha = 0.1;
addChild(_quad);
}
}
private function touchBlockerDisable(e:Event):void
{
if(_quad)
{
removeChild(_quad);
_quad = null;
}
}
调用此函数以激活 Touch Blocker:
Starling.current.dispatchEvent(new Event('TOUCH_BLOCKER_ENABLE'));