Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash:如何临时禁用或阻止外部加载SWF的所有鼠标事件_Flash_Actionscript - Fatal编程技术网

Flash:如何临时禁用或阻止外部加载SWF的所有鼠标事件

Flash:如何临时禁用或阻止外部加载SWF的所有鼠标事件,flash,actionscript,Flash,Actionscript,我将SWF文件加载到flash电影中,这些SWF文件有时会出现鼠标事件,这些事件会干扰flash电影中的对话框和按钮。我想暂时禁用加载的SWFs鼠标事件处理程序或阻止它们对我的flash电影产生任何影响。我的flash电影如2所示。在实际需要时创建事件处理程序,例如当按钮或对象出现在帧上时 如果已创建事件侦听器鼠标单击,则可以随时在actionscript中删除该侦听器 myButton.removeEventListener(MouseEvent.CLICK, 手推车(咔哒声) 然后让函数或相

我将SWF文件加载到flash电影中,这些SWF文件有时会出现鼠标事件,这些事件会干扰flash电影中的对话框和按钮。我想暂时禁用加载的SWFs鼠标事件处理程序或阻止它们对我的flash电影产生任何影响。我的flash电影如2所示。

在实际需要时创建事件处理程序,例如当按钮或对象出现在帧上时

如果已创建事件侦听器鼠标单击,则可以随时在actionscript中删除该侦听器

myButton.removeEventListener(MouseEvent.CLICK, 手推车(咔哒声)

然后让函数或相关逻辑稍后重新打开鼠标事件处理程序

myButton.addEventListener(MouseEvent.CLICK, 手推车(咔哒声)

“handleMouseClick”是通过鼠标点击完成某些操作的实际函数和代码


另一个解决方案是在主时间轴上的actionscript中设置一些全局布尔标志,然后在处理鼠标功能的函数中,您可以在执行任何操作之前先检查布尔值。鼠标事件仍将被创建并传递给事件处理程序,但可以根据布尔标志的状态选择性地忽略

ActionScript2中解决此类问题的常见方法是通常称为“拦截器”的剪辑。只需创建一个由完全透明填充组成的movieclip。然后你可以把这个电影剪辑放在任何你想要的地方,并根据需要调整大小。最后,将此剪辑指定为一个虚拟鼠标事件,并禁用手动光标的使用-如下所示:

blocker.onRelease = function() {};
blocker.useHandCursor = false;

只要此剪辑位于加载内容上方,它就会吸收任何鼠标事件。

在其他回答状态下,阻止单击事件到达子SWF的方法是在其前面放置阻止对象。关键是拦截器是一个按钮。一个带有形状的简单剪辑仍然可以让点击通过AS2子主权财富基金


即使AS2或AS3父级正在加载AS2子SWF,也需要使用阻止程序按钮。

您还可以使用变量,并在调用clickEvent函数时检查状态是否为“0”

变量锁屏:int=0

当您要忽略单击事件时,请设置
lockScreen=1
,并在执行某些操作后将其设置回零。
至少它对我有效:)

我无法控制底层电影的动作脚本。它有自己的功能,我想阻止它这样做。我喜欢这个想法,我添加了一个movieclip,它位于我正在加载的swf之上,但即使在每次鼠标相关事件之后,我能想到的剪辑仍然在捕捉我的发布事件。好吧,我肯定这项技术有效——我一直在使用它!您需要确保movieclip是可见的(blocker.\u visible=true)。你可能想给填充添加一些实际颜色,以确保你实际上高于加载的SWF,因为AS2的深度很容易出错。是的,我也用过它。我让我的拦截器剪辑包含一个大的蓝色矩形,所以我非常确定它正在加载,并且宽度和高度都正确。如果您感兴趣,让我最头疼的资产是Print2Flash。