亲爱的Richard Szalay,
我通过你关于冒泡的答案,我想探索更多冒泡。
请参阅下面的示例
<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>
在我的自定义事件类中,我设置了bubbling = true,cancelable = true
我可以从之前的回答中了解到,冒泡只会影响UI组件;即使bubbles参数设置为true,从自定义类触发的事件也不会冒泡。
我的问题是当我点击“加载”(自定义组件)中的按钮时,如何阻止panelClickHandler函数被触发?
请用好的例子解释冒泡(比如有自定义事件类)?
答案 0 :(得分:0)
我认为您的第一语言不是英语,无论如何我不确定我是否完全理解您,但我认为您要求的是如何允许在视图中单击:从触发点击处理程序加载在小组讨论。
您需要的是为视图点击设置一个事件监听器:load component,并从那里开始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>