为什么我们在flex事件中使用'bubbles'

时间:2012-02-21 09:41:05

标签: flex events actionscript custom-event

我怀疑我们何时在flex中创建自定义事件。

为什么我们在flex事件中使用'type:String,bubbles:Boolean = false,cancelable:Boolean = false'这些参数。

1 个答案:

答案 0 :(得分:2)

冒泡会导致调度事件继续在显示树上调度,直到它到达舞台。这在各种情况下都很有用。

例如:想象一下,在父DisplayObject中有几个按钮。您可以为每个按钮添加侦听器,并记住之后删除它们,或者您可以只向父级添加一个侦听器。这是有效的,因为MouseEvents启用了冒泡。

buttonParent.addEventListener(MouseEvent.CLICK,handleButtonClick);

function handleButtonClick(event:MouseEvent):void
{
    trace("The button clicked was " + event.target.name);
}

这样做的好处是,您现在可以自由添加和删除按钮,而无需担心将侦听器附加到它们。事件对象的target属性将是对单击按钮的引用,currentTarget将是对父级的引用。

可取消是一个标志,用于设置是否允许您通过调用preventDefault()方法停止事件的默认操作。