理解的flex事件addEventListener侦听处理流程
来源:互联网 发布:mac怎么查激活时间 编辑:程序博客网 时间:2024/06/05 06:50
“只有事件发送者才能侦听事件”,这句话的意思是dispatchEvent对象与addEventListener对象都必须是同一个实例,所发送的事件类型可以是系统自定义的事件也可以是任一类的静态常量。
在自定义事件派发与侦听过程中需要注意事件的流程,我们先要做的是建立侦听器(addEventListener),再发送事件,程序在执行dispatchEvent之后立马通知已注册事件侦听的所有对象,如果addEventListener语句在dispatchEvent之后,那么注册该侦听器的对象将无法接到通知。这一点在接收和发送数据时容易出问题,有时候很难弄明白dispatchEvent语句究竟是在什么时候执行的。
Settings.getInstance().loadSettings("customAs/xml/file.xml");
Settings.getInstance().addEventListener(Settings.INIT, onSettingsInit);
public function loadSettings(url:String):void {
var urlRequest:URLRequest = new URLRequest(url);
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded);
urlLoader.load(urlRequest);
trace("loadSettings");
}
private function onXMLDataLoaded(event:Event):void {
data = XML(urlLoader.data);
dispatchEvent(new Event(Settings.INIT, true, true));
dispatchEvent(new Event(Settings.FILE,true,true));
}
那么它执行的顺序就应该是先执行loadSettings("customAs/xml/file.xml"),进入loadSettings([url=String):void]url:String):void[/url] 函数,当执行到
urlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded)的时候,程序只是将urlLoader对象添加到侦听队列中,并没跳转去执行
onXMLDataLoaded(event:Event):void ,所以这个时候dispatchEvent(new Event(Settings.INIT, true, true))该条语句并未执行,也就是说Settings事件源并未派发事件。
执行完loadSettings([url=String):void]url:String):void[/url] 函数后,再执行
Settings.getInstance().addEventListener(Settings.INIT, onSettingsInit)语句,将Settings.getInstance()添加到Settings事件源的队列上,当customAs/xml/file.xm加载完后,Event事件源通知urlLoader对象执行onXMLDataLoaded函数,这之后才会派发 Settings.INIT事件,之后执行onSettingsInit函数
在自定义事件派发与侦听过程中需要注意事件的流程,我们先要做的是建立侦听器(addEventListener),再发送事件,程序在执行dispatchEvent之后立马通知已注册事件侦听的所有对象,如果addEventListener语句在dispatchEvent之后,那么注册该侦听器的对象将无法接到通知。这一点在接收和发送数据时容易出问题,有时候很难弄明白dispatchEvent语句究竟是在什么时候执行的。
Settings.getInstance().loadSettings("customAs/xml/file.xml");
Settings.getInstance().addEventListener(Settings.INIT, onSettingsInit);
public function loadSettings(url:String):void {
var urlRequest:URLRequest = new URLRequest(url);
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded);
urlLoader.load(urlRequest);
trace("loadSettings");
}
private function onXMLDataLoaded(event:Event):void {
data = XML(urlLoader.data);
dispatchEvent(new Event(Settings.INIT, true, true));
dispatchEvent(new Event(Settings.FILE,true,true));
}
那么它执行的顺序就应该是先执行loadSettings("customAs/xml/file.xml"),进入loadSettings([url=String):void]url:String):void[/url] 函数,当执行到
urlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded)的时候,程序只是将urlLoader对象添加到侦听队列中,并没跳转去执行
onXMLDataLoaded(event:Event):void ,所以这个时候dispatchEvent(new Event(Settings.INIT, true, true))该条语句并未执行,也就是说Settings事件源并未派发事件。
执行完loadSettings([url=String):void]url:String):void[/url] 函数后,再执行
Settings.getInstance().addEventListener(Settings.INIT, onSettingsInit)语句,将Settings.getInstance()添加到Settings事件源的队列上,当customAs/xml/file.xm加载完后,Event事件源通知urlLoader对象执行onXMLDataLoaded函数,这之后才会派发 Settings.INIT事件,之后执行onSettingsInit函数
- 理解的flex事件addEventListener侦听处理流程
- Flex中AddEventListener()侦听处理流程
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数
- Flex addEventListener增加事件侦听函数时传递多个参数 .
- 事件处理---addEventListener
- ActionScript3(Flex)事件机制的设计技巧: Event / addEventListener
- js事件处理(removeEventListener addEventListener)
- [html]事件处理addEventListener详解
- 理解Flex的事件机制
- 通用的事件侦听函数
- Flex学习-事件机制的工作流程
- js事件处理方法addEventListener和attachEvent
- C#3.0的一些新特性
- sql server数据库的分页存储过程
- 根据导入Excel文件批量修改Oracle数据库中订单信息
- 无锁队列和事件模式
- 关于如何使用String.IndexOf 方法(C#)
- 理解的flex事件addEventListener侦听处理流程
- JavaScript语言概述(函数)
- css布局
- 普通行列转换
- CXF-HelloWorld-Java first 使用注释方式
- 格式化Eval的输出,比如 text 的输出
- SQL学习笔记:简单的VC成绩管理源码
- C# 运行已生成的SSIS包
- javascript学习