About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • May

    18

    [AS3]AS3事件流机制中二个重要的应用知识

    • 0 Comments
    • Flash Platform
    • 发布:古树
    • 引用:0
    • 浏览:

    在AS3的事件流应用过程中,会出现一些冒名奇妙的事情,但很多网站、很多教程上都没有介绍这些不是BUG的BUG是如何产生的,其实与下面二个重要的应用知识有关。

    一、显示层次结构改变与事件流:
    被通知某事件的事件对象列表顺序,是先于事件调度之前被确定的。也就是说:一个事件调度开始至这个事件调度结束,所有事件流经过的对象显示层次结构即便是被修改了,事件流经过对象的过程还是保持不变(附:事件流过程不变,但事实上显示结构层次已经变了)。如,当一个显示对象的子对象在事件流过程中被父对象的监听器从显示列表中移去,哪怕是被删除引用,事件流还是会经过子对象,如果子对象上存在监听器,它的监听器还是会被继续执行。

    二、事件监听器列表固化:
    在一个事件流过程中,事件被传送到每一个对象时,该对象的监听器列表将被固化,不可改变,如:在当前对象捕获阶段的监听器中给当前对象继续添加一个监听器,将会无效,但他会在后面的事件流中生效,如添加一个冒泡阶段的监听器。事件被传送到每一个对象时,该对象的监听器列表虽然被固化,但它并不固化事件流中子对象的监听器列表,仍然可以使用当前对象的监听器移除或添加子对象的监听器,并且在事件流到达子对象时,监听器有效,监听器列表在到达子对象时也是被固化的。