如何实现后台响应的事件。
时间:2011-01-04
来源:互联网
象这样的可以自定义没有。
作者: QWEASZ 发布时间: 2011-01-04
作者: flash023 发布时间: 2011-01-04
作者: HSZZLZL 发布时间: 2011-01-04
作者: HSZZLZL 发布时间: 2011-01-04
作者: QWEASZ 发布时间: 2011-01-04
精简使用就是
var aa:Function = function(){
trace("DD");
//this.removeListner(this);
}
//这里使用var 声明 因为它是属于this的 如果是影片剪辑的方法 则直接使用 对象.方法名 = fucntion(){} 来声明
AsBroadcaster.initialize(this);
//AsBroadcaster.initialize(事件源对象:Object) 作用类似主持人
//这里初始化构建成功一个事件源对象后,会给这个对象动态添加一个属性 _listener:Array 里面存有所有 addListener进去的 侦听者 对象 ,即下一步
this.addListener(this);
//使用 事件源对象:Object 执行addListener侦听 作用类似主持人向参赛者说 与本轮环节有关的参赛者请注意
this.broadcastMessage("aa")
//使用 事件源对象:Object 主持人说出问题 然后参赛者就开始抢答
[ 本帖最后由 HSZZLZL 于 2011-1-4 11:11 编辑 ]
作者: HSZZLZL 发布时间: 2011-01-04
均具有事件派发能力
this.addListener(this); 类比就是 影片剪辑对象.addEventListener(
this.broadcastMessage("aa") 这里的aa类比成按钮点击后派发出的事件名 MouseEvent.CLICK 或者自定义的事件名
var aa:Function = function(){ 这个类比其实就是 影片剪辑对象.addEventListener( 事件名,事件处理函数)
因为事件名 和事件处理函数必须同名 所以才会变成这样如此奇怪的结构 理解了就没什么了
作者: HSZZLZL 发布时间: 2011-01-04
[ 本帖最后由 HSZZLZL 于 2011-1-4 11:11 编辑 ]
作者: HSZZLZL 发布时间: 2011-01-04
在FLASH MX2004中改名为 AsBroadcaster类
另请参阅 http://qingyu87.blog.sohu.com/142176399.html
作者: HSZZLZL 发布时间: 2011-01-04
在2009年的时候 我使用过这个类 当时总结出来的代码是这样
http://bbs.9ria.com/thread-40038-1-1.html
使用前紧记这个类非内带,需要import的
//import mx.utils.Delegate;
//import mx.events.EventDispatcher;
//一般为了解决函数指向,均习惯性导入Delegate这个类
import mx.utils.Delegate;
import mx.events.EventDispatcher;
//赋与aa 和 bb的事件能力
EventDispatcher.initialize(aa);
EventDispatcher.initialize(bb);
//将lis对象指向bb
//然后为bb(即lis)定义事件处理同名函数,然后作用域现在就是bb内了 就可以直接更新bb内的文本框了
//甚至乎,可以直接把这个方法定义在bb实例内,这样就实现了我所追求的脱耦要求了
var lis:Object = bb;
lis.updata = function(e){
trace(e.data)
this.info.text = e.data;
}
//aa按下的时候 派发事件及数据
aa.onRelease = function(){
this.dispatchEvent({type:"updata",data:this.txt_input.text})
//this.play();
}
//aa要侦听自己派发的事件 并且将后续处理转交给处理对象 lis
aa.addEventListener("updata",lis)
作者: HSZZLZL 发布时间: 2011-01-04
作者: HSZZLZL 发布时间: 2011-01-04
作者: HSZZLZL 发布时间: 2011-01-04
import mx.events.EventDispatcher;
//赋与aa 和 bb的事件能力
EventDispatcher.initialize(aa);
EventDispatcher.initialize(bb);
//这里的aa可以是任意对象 即亦包括影片剪辑 即赋给影片剪辑派发事件的能力
//将lis对象指向bb
//然后为bb(即lis)定义事件处理同名函数,然后作用域现在就是bb内了 就可以直接更新bb内的文本框了
//甚至乎,可以直接把这个方法定义在bb实例内,这样就实现了我所追求的脱耦要求了
var lis:Object = bb;
lis.updata = function(e){
trace(e.data)
this.info.text = e.data;
}
//aa按下的时候 派发事件及数据
aa.onRelease = function(){
this.dispatchEvent({type:"updata",data:this.txt_input.text})
//this.play();
}
//这个是对象或影片剪辑本身最基本的鼠标行为
//这里为对象或影片剪辑增加 事件侦听者 即主持人 添加 参赛者
//aa要侦听自己派发的事件 并且将后续处理转交给处理对象 lis
aa.addEventListener("updata",lis)
作者: HSZZLZL 发布时间: 2011-01-04
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28