flex_停止事件传播说明示例;

原创 2012年03月22日 17:41:30
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="1024" minHeight="768" pageTitle="TheStudioOfCenyebao"
               applicationComplete="initFn()">
    
    <!-- Demo_如何停止事件传播
        猜想:事件流_事件触发顺序
            首先被触发的是按钮里边添加的监听器(在MXML中添加),接着是通过addEventListener()添加的监听器,
        接着事件就冒泡到按钮父组件HGroup,触发父组件里边的监听器。
            不过使用event.stopPropagation()或者event.stopImmediatePropagation()都会阻止事件从按钮冒泡
        到其父组件,两者的区别就是stopPropagation()函数会在给定组件(按钮)上的所有其他事件监听器完成对这个
        事件(比如MouseEvent)的响应之后停止传播,而stopImmediatePropagation则是直接停止此事件传播。
    -->
    
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            
            protected function initFn():void{
                // 添加事件监听器;
                button.addEventListener(MouseEvent.CLICK, onClick);
                box.addEventListener(MouseEvent.CLICK, onParentClick);
            }
            
            protected function button_clickHandler(event:MouseEvent):void
            {
                Alert.show("MXML click event.", "MXML Event");
                trace("第一个被触发 Event");
                //event.stopPropagation();    // 事件停止传播--但是第二个监听器会触发;
                event.stopImmediatePropagation();    // 停止传播--后面所有监听器都不会触发;
            }
            
            protected function onClick(event:Event):void{
                Alert.show("AS event.Calling stopPropagation", "AS Event");
                trace("第二个被触发 Event");

            }
            
            protected function onParentClick(event:Event):void{
                // 事件永远不会传播(冒泡)到父组件,不管使用event.stopPropagation()或者event.stopImmediatePropagation()。
                Alert.show("You should never see this alert.", "Parent Event");
                trace("第三个被触发 Event");
            }
            
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- 非可视元素 -->
    </fx:Declarations>
    
    <!--view-->
    <s:HGroup id="box" horizontalCenter="0" verticalCenter="0">
        <s:Button id="button" label="FireEvent" click="button_clickHandler(event)"/>
    </s:HGroup>
    
</s:Application>


Flex中的禁止事件

Mike Slinn在Flex中,没有方法可以临时禁止事件监听器,稍微再重启。你可能会有这样的要求,以阻止无休止的循环。譬如,当某个代码修改列表的selectedIndex, 就会触发一个事件。如果你...
  • lihe111
  • lihe111
  • 2010年03月25日 11:17
  • 624

flex---->事件

Flex事件概述 Flash/Flex中的事件是编写应用的基础,是和用户交互的基础。应用和用户之间的交互就是以事件为桥梁。 应用对用户动作的响应相当于应用和外界的交互,而应用之间也有需要响应的事情...
  • ncepustrong
  • ncepustrong
  • 2012年08月27日 21:51
  • 1038

JQuery对stopPropagation()的兼容性处理

原来对父元素做的点击事件发现冒泡到了子元素上面。 然后需要阻止父元素的冒泡,使用了 stopPropagation()方法,我记得这个方法是指针对部分浏览器,针对ie还有什么要使用cancelBub...
  • u010289111
  • u010289111
  • 2017年04月05日 09:45
  • 790

AS3 event flow 事件冒泡机制 以及 stopImmediatePropagation() stopPropagation()用法

 今 天,我也正式宣布,开始成为闪客,以往对macromedia flash的许多头疼问题都被adobe解决了,以往一直否认我喜欢做flash,现在总算可以为adobe flash 自豪。非常有...
  • wkyb608
  • wkyb608
  • 2011年02月21日 15:12
  • 779

阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法...
  • wxl1555
  • wxl1555
  • 2016年11月11日 15:06
  • 17072

Flex停止事件传播说明示例

  • Flood_Dragon
  • Flood_Dragon
  • 2013年01月23日 14:41
  • 356

flex_事件绑定说明示例;

xmlns:s="library://ns.adobe.com/flex/spark"                xmlns:mx="library://ns.adobe.com/flex/m...
  • cenyebao
  • cenyebao
  • 2012年03月22日 11:26
  • 696

event.stopPropagation()方法的使用

event.stopPropagation()阻止事件冒泡
  • nianzhi1202
  • nianzhi1202
  • 2016年09月06日 21:38
  • 1856

阻止冒泡的方法 event.stopPropagation();

标准浏览器 和  ie浏览器    w3c的方法是event.stopPropagation()         IE则是使用event.cancelBubble = true       bub...
  • waterDjj
  • waterDjj
  • 2016年08月16日 20:06
  • 377

jQuery阻止事件传播

要删除之前已经分配给一个标签的事件,jQuery的unbind()允许做到这一点。要使用它,首先创建一个jQuery对象,带有想要从其上删除事件的元素。然后,添加unbind()函数,传递给它一个带有...
  • menyaliqi
  • menyaliqi
  • 2014年07月11日 10:56
  • 1363
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:flex_停止事件传播说明示例;
举报原因:
原因补充:

(最多只允许输入30个字)