禁用/重新启用交互功能

时间:2010-06-24 17:00:06

标签: flash actionscript-3 events

作为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时,它会停止所有输入事件传播(鼠标,焦点,文本...)或否则什么都不做。

第二个想法是使用自定义事件......

任何建议都会非常感激:) 感谢。

2 个答案:

答案 0 :(得分:1)

以下代码禁用与显示对象及其子项的所有交互:

movieClip1.mouseChildren = false;
movieClip1.mouseEnabled = false;

答案 1 :(得分:1)

如果您没有任何直接连接到舞台的听众,您也可以使用:

stage.mouseChildren = false;