2013-04-24 96 views

回答

1

開發出快速解決方案!基本上創建一個與屏幕大小相同的四元組,並將其添加到最前面的圖層。

添加到的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; 
    } 
} 

調用此函數可激活觸摸攔截:

Starling.current.dispatchEvent(new Event('TOUCH_BLOCKER_ENABLE')); 
3

如果您不想讓對象觸摸,可以禁用「可觸摸」屬性。當它被禁用時,對象和它的孩子都不會再收到任何觸摸事件。

沒有必要添加新的顯示對象來防止觸摸。

this.touchable = false;