冒泡
问题描述:
亲爱的理查德·绍洛伊,
我的经历,你就冒泡答案柔性自定义事件,我想探索更多的冒泡。 请参考下面冒泡
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:view="com.view.*" >
<mx:Script>
<![CDATA[
import com.events.ImgLoaded;
private function loadedd(evt:ImgLoaded):void{
trace("test")
evt.stopImmediatePropagation();
}
private function panelClickHandler(evt:Event):void{
trace("panel");
}
]]>
</mx:Script>
<mx:VBox>
<mx:Panel click="panelClickHandler(event)">
<view:Load imgLoad="loadedd(event)"/>
</mx:Panel>
</mx:VBox>
</mx:Application>
我的样本在我的自定义事件类我设置冒泡= TRUE,取消=真
我可以从以前的答案是冒泡只影响UI组件理解;即使将bubbles参数设置为true,从自定义类中触发的事件也不会冒泡。
我的问题是如何防止panelClickHandler功能就被解雇了,当我在“加载”按钮,单击(自定义组件)?
请解释冒泡与良好的例子(喜欢与自定义事件类)?
答
我假设你的第一语言不是英语,无论如何我不知道我完全理解你,但我认为你所要求的是如何允许在视图中点击:加载烧制而成的点击面板上的处理程序。
你需要的是建立一个事件侦听器在视图中点击:加载组件,并stopPropagation从那里。这将阻止面板上的点击处理程序启动。例如:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:view="com.view.*" >
<mx:Script>
<![CDATA[
import com.events.ImgLoaded;
private function loadedd(evt:ImgLoaded):void{
trace("test")
evt.stopImmediatePropagation();
}
private function panelClickHandler(evt:Event):void{
trace("panel");
}
private function load_clickHandler (e:MouseEvent) : void
{
e.stopPropagation;
}
]]>
</mx:Script>
<mx:VBox>
<mx:Panel click="panelClickHandler(event)">
<view:Load imgLoad="loadedd(event)" click="load_clickHandler(event)"/>
</mx:Panel>
</mx:VBox>
</mx:Application>
这似乎是指以下的答案:http://stackoverflow.com/questions/2040610/bubbling-events-within-custom-components-in-flex/2040770#2040770 – 2010-05-24 02:14:16