`
emavaj
  • 浏览: 49863 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex 事件监听的思考

    博客分类:
  • Flex
阅读更多

 Flex 是异步的...

这个大家应该是知道的...

 

那么,大家有没有对异步的开发方式困惑呢 ?

 

具体说就是...你不知道方法什么时候执行...

 

还是模糊,举个例子吧:

 

var request:URLLoader = new URLLoader();
request.addEventListener(Event.COMPLETE,loadStateInfo);
request.load(new URLRequest(this.file));

 这个是Flex 读取远程资源的例子

这个语句监听了加载的完成,然后执行loadStateInfo函数

 

如果你需要同步机制怎么办?

 

加入你需要远程加载完成之后

再执行一些函数?

 

有人说很简单啊,在监听函数里面执行不就行咯...

 

加入你执行的函数需要传入参数呢? 那你如何传参?

比如你加载完成后要执行以下函数:

protected function moveEffect(target:UIComponent,targetX:int,targetY:int):void {
	if (target.x != targetX || target.y != targetY) {
		var move:Move = new Move(target);
		move.xTo = targetX;
		move.yTo = targetY;
		move.play();
	}
}

 那你如何将所需的targetX和targetY传入给这个函数呢?

监听事件中 event:Event 这个对象有吗?

 

所以,你有几种选择...

 

1) 全局变量 或者 类属性

这个方法有点笨...但是有时候有用...

具体就是,设置一个或多个全局变量作为“暂时存储”,当方法完成后,再传入要执行的函数

 

2) 闭包特性

也就是不写出方法名,只有方法体:

this.addEventListener(LoadDataEvent.LOADDATA_EVENT,function(event:Event):void{
	abc(arg1, arg2);
});

 这样上面的arg1和arg2 这个2个参数,是局部的变量,但是使用了闭包这个特性

你就不用管它监听到事件后如何取得参数了,总之就是传进去了...

 

 

这样一说,大家会感觉闭包方法应该是非常好的...

但是...

我们必须又要面临的问题是...如果移除监听?

 

这个又成了难题...难道又用全局变量或者是属性?

那不成了第一个方法了?

 

如果监听的事件能像Timer类一样就好了...

/**延时执行.*/
var late:Timer = new Timer(300,1);
late.addEventListener(TimerEvent.TIMER_COMPLETE,function(event:TimerEvent):void {
	removeElem(xFrom,yFrom);
});
late.start();

 

这个上面的第二种方法一样,使用了闭包的特性...

但是..又加上了Timer的特点...指定了监听次数...所以不用自己移除方法...

 

当然,局限性也凸显了...你需要定时...

 

说来说去... 小弟也没有什么好点子...

 

所以向各位请教...

 

或许这个问题早就有方法解决了的... 只是因为小弟见识不广,而导致这样的疑虑...

 

望指教...

0
1
分享到:
评论
3 楼 yangfan1110 2014-07-10  
有一种做法是,自定义事件,自定义事件是可以带参数变量的,就是在触发监听的时候,传递参数,然后在监听事件的方法里就可以用参数了。
2 楼 bence 2010-05-27  
没辙了,一般是用匿名内部类来处理,也就是所谓的闭包特性
1 楼 xwy55555 2010-05-27  
还有一种方法是把参数传过来,再传回来

相关推荐

    FLEX事件监听样例(JAVA代码)

    在本文中,我们将深入探讨基于Java的Flex事件监听机制,这是一种强大的工具,允许开发者响应用户交互和应用程序状态的变化。Flex事件模型是ActionScript 3.0的核心组成部分,它与Java的事件处理方式有所不同,但可以...

    flex监听浏览器关闭事件

    ### Flex监听浏览器关闭事件 在Web开发中,有时我们需要对用户关闭浏览器窗口的行为进行监听,并在用户尝试关闭页面时给出提示或执行某些操作。本文将详细介绍如何利用Flex结合JavaScript实现这一功能。 #### 1. ...

    flex事件运行流程

    本文将深入探讨Flex事件运行流程,特别是与`mx:Application.applicationComplete`、`creationComplete`以及Flex应用程序初始化顺序相关的知识点。 首先,Flex应用程序的启动始于`preloader`阶段,系统管理器...

    flex事件flex事件flex事件flex事件

    "flex事件"这个概念可能指的是与Flex布局相关的JavaScript事件或者是在Flex容器中发生的交互事件。然而,由于提供的信息较少,无法明确具体是指哪些特定的事件。下面,我将详细介绍Flex布局的基础知识以及可能与之...

    Flex事件机制详细说明

    ### Flex事件机制详解 #### 一、事件简介 在Flex框架中,事件是应用程序与用户交互的核心机制之一。它可以由多种触发源启动,包括但不限于用户的输入(如键盘按键、鼠标点击)、外部数据加载完成(例如WebService...

    Flex 事件机制,flex入门学习

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

    flex 事件 代码生成器

    Flex事件代码生成器是一款专为Flex开发者设计的实用工具,旨在简化代码编写过程,提高开发效率。Flex是一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。在Flex应用开发中,处理各种用户...

    flex事件机制分析

    Flex事件机制是Adobe Flex应用程序中处理用户交互和组件通信的核心组成部分。它主要涉及事件流、事件处理程序以及事件对象的概念,这些在构建富互联网应用程序(RIA)时扮演着至关重要的角色。下面将对这些概念进行...

    关于flex事件的讲解

    Flex事件是Adobe Flex框架中的一个重要组成部分,它允许开发者在应用程序的不同组件之间传递信息,实现对用户交互、数据更新以及应用程序状态变化的响应。在Flex应用中,事件处理是构建动态和响应式用户界面的关键。...

    关于flex事件的讲解.rar

    Flex事件机制是Adobe Flex框架中的核心组成...通过这份资料“关于flex事件的讲解.pdf”,读者将能够全面掌握Flex事件机制,包括如何创建、监听和处理事件,以及如何优化事件性能,为构建富互联网应用程序打下坚实基础。

    flex 事件流原理

    4. **事件流**:Flex事件流分为三个阶段:**捕获阶段**、**目标阶段**和**冒泡阶段**。捕获阶段是从舞台的最顶层(根节点)开始,逐级向下直到目标节点;目标阶段是到达并处理目标节点上的事件;冒泡阶段则是从目标...

    flex事件机制的分发

    Flex事件机制是Adobe Flex框架中一个关键的概念,它允许组件之间通过事件进行通信。在Flex中,事件机制的分发主要包括三个主要阶段:捕获阶段、目标阶段和冒泡阶段。下面将详细介绍这些阶段以及自定义事件的创建与...

    flex4自定义事件用法

    自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...

    Flex事件机制(通俗易懂)

    ### Flex事件机制详解 #### 一、引言 Flex是一个强大的框架,用于构建高性能的Web应用程序。对于初学者而言,理解和掌握Flex中的事件机制是非常重要的一步。本文将深入探讨Flex事件机制的基础概念、事件注册通道、...

    flex事件讲解

    Flex事件讲解 在Flex开发中,事件处理是构建交互式用户界面的重要组成部分。Flex是一个开源的、基于ActionScript的框架,用于创建富互联网应用程序(RIA)。它提供了丰富的组件库和强大的事件模型,使得开发者能够...

    flex 关于事件的例子

    在这个例子中,可能会有各种事件监听器和处理函数,用于演示如何在Flex应用中响应用户操作。 通过理解和实践这个“flex 关于事件的例子”,初学者能够掌握Flex中事件处理的基本原理和用法,为构建交互式Flex应用...

    flex控件事件

    Flex控件事件是Adobe Flex应用程序开发中的核心概念,主要用于实现用户交互和组件间的通信。在Flex中,控件(或称为组件)是构建用户界面的基本元素,如按钮、文本框、列表等。当用户与这些控件进行交互时,如点击...

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

    ### Flex事件解析以及Flex基础功能介绍 #### 一、Flex:终结B/S架构下的界面噩梦 在企业级应用开发领域,B/S架构因其易于部署、维护和强大的可扩展性,逐渐占据了主导地位。JavaEE作为B/S架构的中流砥柱,凭借其...

    flex事件机制的demo

    Flex ActionScript3.0事件机制的Demo, 举例说明了事件的三个阶段,事件的派发,事件的侦听,事件的拦截,自定义事件等相关知识点. 以上知识点在Demo中都有体现,初学者请仔细分析代码,加强理解,多调试、修改、验证以加深...

    flexevent.rar_flex

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

Global site tag (gtag.js) - Google Analytics