作为AS3初学者,我正在尝试将旧的AS2技巧转换为AS3。我想禁用然后立即重新启用舞台上所有显示对象的任何类型的交互。例如,在等待加载外部资产时或在用户单击菜单项之后。
这就是我以前用AS2做的事情:
protect_mc.onRelease = function():Void {};
protect_mc.enabled = false;
protect_mc._alpha = 0;
protect_mc._visible = false;
然后将protect_mc._visible切换为true或false (protect_mc是一个空的影片剪辑,舞台的高度和宽度,在最高深度)
我的第一个想法是在MouseEvent.CLICK的捕获阶段为Stage注册一个监听器,当“lock”静态变量设置为true时,它会停止所有输入事件传播(鼠标,焦点,文本...)或否则什么都不做。
第二个想法是使用自定义事件......
任何建议都会非常感激:) 感谢。
答案 0 :(得分:1)
以下代码禁用与显示对象及其子项的所有交互:
movieClip1.mouseChildren = false;
movieClip1.mouseEnabled = false;
答案 1 :(得分:1)
如果您没有任何直接连接到舞台的听众,您也可以使用:
stage.mouseChildren = false;