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
Events flash dispatchEvent是如何工作的?_Events_Flash_Dispatchevent - Fatal编程技术网

Events flash dispatchEvent是如何工作的?

Events flash dispatchEvent是如何工作的?,events,flash,dispatchevent,Events,Flash,Dispatchevent,在中说,EventDispatcher的dispatchEvent“…将事件分派到事件流中”。这个短语很好看,并不能真正解释任何事情 比方说,我们有两个侦听器在等待对象“A”上的事件“A”,那么调用时我们需要期望什么行为: a、 调度事件(“a”) 在从distpatchEvent返回之前,是否会立即调用这两个侦听器?或者它们将在某些内部flash player队列中排队,并通过进入下一帧进行处理?我们可以依赖于flash player的某些已定义的行为,还是该行为尚未定义?如何阅读“将事件分派

在中说,EventDispatcher的dispatchEvent“…将事件分派到事件流中”。这个短语很好看,并不能真正解释任何事情

比方说,我们有两个侦听器在等待对象“A”上的事件“A”,那么调用时我们需要期望什么行为:

a、 调度事件(“a”)


在从distpatchEvent返回之前,是否会立即调用这两个侦听器?或者它们将在某些内部flash player队列中排队,并通过进入下一帧进行处理?我们可以依赖于flash player的某些已定义的行为,还是该行为尚未定义?如何阅读“将事件分派到事件流”?这个问题很重要,因为实际上它会影响代码的控制流。

这完全取决于您的显示列表层次结构

Flash的事件结构基于其

  • 舞台将是第一个目标 通知,然后事件将 向下滚动显示列表,直到 它达到了目标。这个阶段是 称为捕获阶段。要启用它,请将
    useCapture
    设置为 事件侦听器上的
    true
    。注意 这样做毫无意义除非 侦听的对象是的父对象 目标为事件的对象。这 被称为事件拦截

  • 下一阶段是目标 阶段。这是最重要的行为 众所周知的事件。这个 目标显示对象(该 有事件的侦听器)将 接收事件并执行 侦听器中的代码

  • 最后一个阶段称为 鼓泡阶段。此时事件在显示列表中出现气泡 收到事件后。事件冒泡是非常重要的 发送自定义事件,如您所知 需要知道如何倾听 由对象的 孩子们

  • 发送事件时,我通常使用以下语法(
    event.CHANGE
    只是一个常见的示例):

    Object.dispatchEvent(新事件(“更改”,true,false))

    对象
    是您从中分派的对象。第一个参数是要分派的事件。第二个是
    气泡
    参数。最后一个是
    可取消的
    属性
    Event.cancelable
    用于通过
    Event.preventDefault()
    阻止事件的默认操作(即:鼠标单击)

    参考:


    只需使用信号即可:p

    不,但实际上,它们非常易于使用和理解,是AS3工具箱的一个很好的补充

    通过阅读Rob Penner的评论(向下滚动至wiki页面底部),您还可以了解很多关于本机AS3事件的工作原理