`
wyzxzws
  • 浏览: 394295 次
  • 性别: Icon_minigender_1
  • 来自: dazhou
社区版块
存档分类
最新评论

flex冒泡事件问题处理

阅读更多

问题:点击第三级元素,结果一二级元素也影响了!

解决方案:

     事件监听时需要多设置一个参数false,而true意味着事件在所有过程传递也是默认的值。

p0.addEventListener(MouseEvent.CLICK, p0_clickHandler, false);

    每个事件都需要防止冒泡

event.stopPropagation();

 所有代码如下:

<?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" 
			   creationComplete="application1_creationCompleteHandler(event)"
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			protected function btn0_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("btn0","msg");
			}
			protected function btn1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("btn1","msg");
			}
			protected function btn2_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("btn2","msg");
			}
			
			protected function p0_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("p0_clickHandler","msg");
				event.stopPropagation();
			}
			
			protected function p1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("p1_clickHandler","msg");
				event.stopPropagation();
			}
			
			protected function p2_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				Alert.show("p2_clickHandler","msg");
				event.stopPropagation();
			}
			
			protected function application1_creationCompleteHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				p0.addEventListener(MouseEvent.CLICK, p0_clickHandler, false);
				p1.addEventListener(MouseEvent.CLICK, p1_clickHandler, false);
				p2.addEventListener(MouseEvent.CLICK, p2_clickHandler, false);
			}
			
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	
	
	<s:Panel id="p0" width="900" height="600" title="一级">
		<s:layout>
			<s:HorizontalLayout/>
		</s:layout>
		<s:Panel id="p1" width="600" height="300" title="二级">
			<s:layout>
				<s:HorizontalLayout/>
			</s:layout>
			<s:Panel title="三级" id="p2" width="300" height="150">
				<s:Button id="btn2" click="btn2_clickHandler(event)" label="btn2"/>
			</s:Panel>
			<s:Button id="btn1" click="btn1_clickHandler(event)" label="btn1"/>
		</s:Panel>
		<s:Button id="btn0" click="btn0_clickHandler(event)" label="btn0"/>
	</s:Panel>
</s:Application>
 
分享到:
评论

相关推荐

    flex控件事件

    事件监听器可以在任意阶段注册,以决定何时处理事件。 7. 事件阻止和事件冒泡停止: 使用event.stopPropagation()可以阻止事件继续冒泡到父组件,而event.preventDefault()可以防止事件的默认行为,比如链接的跳转...

    Flex的事件机制笔记

    在本文中,我们将深入探讨Flex事件的各个方面,包括事件流、事件类型、自定义事件的创建与处理。 首先,Flex的事件流分为三个阶段:冒泡阶段、捕获阶段和目标阶段。冒泡阶段是从最具体的子组件开始,沿着组件层次...

    Flex4.5事件机制

    事件机制使得开发者能够轻松响应用户交互和系统事件,为Flex程序员提供了强大且直观的处理工具。 首先,Flex事件是用户与应用程序交互的关键。事件是ActionScript 3.0中的核心概念,它们在DOM3事件模型的基础上进行...

    flex的事件详解

    3. **事件目标(Target)**:接收并处理事件的对象。销售人员可以被视为事件目标。 4. **事件侦听器(EventListener)**:监听特定类型的事件,并在事件发生时执行相应代码的对象。销售人员可以被看作是事件侦听器。 5. ...

    flex 关于事件的例子

    事件监听器是处理事件的方法;事件流描述了事件从源传播到目标的路径。 2. **事件类型** Flex中有多种内置事件类型,如`MouseEvent`(鼠标事件)、`KeyboardEvent`(键盘事件)、`FocusEvent`(焦点事件)和`...

    全套 Flex 实例 源码 关于事件的处理(3)

    通过设置`addEventListener`的第三个参数,可以选择在哪个阶段处理事件。 5. **项目结构**:压缩包中的`.actionScriptProperties`和`.flexProperties`文件是Flex项目的配置文件,用于保存编译设置和项目特性。`....

    Flex 事件机制,flex入门学习

    在 Flex 中,事件监听通常通过在 MXML 组件上添加事件处理函数来完成。例如,我们可以为 `Button` 组件的 `click` 事件添加一个处理函数,如 `clickHandler`,并在函数签名中传递 `event` 参数。这个 `event` 参数...

    flex事件机制分析

    事件对象通过`type`属性标识事件类型,`target`属性指明事件发生的对象,而`currentTarget`属性则表示当前处理事件的组件。 4. 自定义事件 Flex允许开发人员自定义事件,以满足特定需求。创建自定义事件通常需要...

    flex 事件流原理

    Flex 事件流是Flex应用程序中事件处理的核心机制...在实际开发中,不仅要关注事件的触发和处理,还要注意性能优化,避免过多的事件监听导致的性能问题。在多人协作的项目中,明确事件的使用和命名规范也显得尤为重要。

    关于flex事件的讲解.rar

    1. **事件模型**:Flex采用发布/订阅模型处理事件,事件源(如UI组件)发布事件,而感兴趣的接收者(监听器)则订阅这些事件。事件源在特定事件发生时会触发事件,监听器接收到事件后执行预定义的处理函数。 2. **...

    Flex事件机制(通俗易懂)

    通过上述内容,我们了解了Flex事件机制的基本概念及其重要组成部分,包括事件的触发与处理、事件注册通道的作用、事件分发的过程以及事件对象的属性。对于Flex开发者而言,熟练掌握这些知识可以帮助他们更加高效地...

    flex自定义组件事件DEMO

    3. 事件处理:处理自定义事件通常需要在组件内部注册事件监听器,并在监听器函数中处理事件。监听器可以添加到组件本身或其父组件上,使用addEventListener方法。事件处理函数接收一个事件参数,从中可以获取事件的...

    flex事件机制的分发

    - `EventDispatcher`是Flex中的事件调度器,负责处理事件的分发。在示例中,`CustomEvent`类使用静态的`EventDispatcher`实例`dispatcher`来分发事件。 - `addEventListener()`:用于注册事件监听器,指定事件发生...

    关于flex事件的讲解

    在Flex应用中,事件处理是构建动态和响应式用户界面的关键。 首先,我们要理解Flex事件模型的基础。在Flex中,事件是由Event类或其子类表示的,它们是传递信息的对象。当一个事件发生时,它会从源对象(通常是组件...

    flexevent.rar_flex

    本文将深入探讨Flex事件的基础知识、事件模型、事件生命周期、事件监听器,以及如何自定义事件,旨在帮助初学者理解和熟练运用Flex的事件处理。 一、Flex事件基础 1. 事件模型:Flex采用的是基于发布/订阅...

    flex事件讲解

    这种模型允许在不同层次的组件上监听并处理事件,增强了代码的灵活性和可维护性。 Flex事件主要分为以下几类: 1. **生命周期事件**:这些事件与组件的创建、显示、隐藏等生命周期状态相关。例如,...

    Flex:事件的流转控制.doc

    ### Flex:事件的流转控制 #### 一、事件机制概览 ...通过上述示例,我们可以清楚地看到如何利用Flex中的事件机制来实现不同场景下的事件处理逻辑。理解这些概念对于构建高效、响应迅速的Flex应用程序至关重要。

    Flex事件解析以及Flex基础功能介绍

    2. **事件传播**:Flex事件遵循捕获、目标、冒泡三个阶段的传播模型。开发者可以通过`addEventListener`方法监听特定事件,而`eventPhase`属性则可以帮助确定事件处于哪个传播阶段。 3. **事件处理**:在事件处理...

    flex-event.zip_flex

    在这个过程中,任何沿路径上的监听器都会有机会处理事件。 2. 捕获阶段:在事件冒泡之前,事件会从应用程序的根节点向下传播到事件源。这个阶段允许在组件层次结构的更高级别上处理事件,对全局行为的处理非常有用...

Global site tag (gtag.js) - Google Analytics