在as3中有类似java'glasspane'的东西吗?
当您希望能够捕获事件或绘制已包含一个或多个组件的区域时,玻璃窗格非常有用。例如,您可以通过使玻璃窗格拦截事件来停用多组件区域的鼠标事件。或者,您可以使用玻璃窗格在多个组件上显示图像。 http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html
为什么这样?虽然flash中正在进行一些动画,但我想防止任何鼠标事件被触发。我可以系统地删除所有听众,然后在动画之后重新添加它们,但是如果有像玻璃窗一样的东西,它可能是一种更简单的方法来达到同样的效果。
我目前的想法是:
答案 0 :(得分:2)
如果你设置
enabled=false;
mouseChildren=false;
在最顶层的DisplayObject上,它应该禁用应用程序的所有鼠标事件。我已经习惯了,它可以用来享受。
答案 1 :(得分:1)
对于更具体的方法,例如通过我使用这种方法只阻止点击,但让鼠标等。它在捕获阶段使用'clickBlocker'阶段事件处理程序,停止传播到任何其他对象。
public function blockClicks():void{
if(!stage) return;
stage.addEventListener(MouseEvent.CLICK, clickBlocker, true); //useCapture!
}
private function clickBlocker(event:MouseEvent):void{
trace("Me (the stage) gets the "+event.type+" first, and I block it @"+event.stageX+"/"+event.stageY);
event.stopImmediatePropagation();
}