flash MXML标签添加的侦听

在flex中我们可以很方便的在mxml标签中使用事件名="函数名()"来给对象添加侦听..
像click="goUrl()"

可是当我们不需要该侦听的时候..
如果想使用
id.removeEventListener("click",goUrl)来删除侦听.
却发现怎么也remove不成功..

原来使用该方法给对象添加侦听时..
flex并不是直接使用我们指定的函数(goUrl),
而是先动态生成一个函数.
然后再使用该函数调用我们指定的函数..

所以我们使用id.removeEventListener("click",goUrl)当然就失败了...

正当ym的时候..记得之前使用过状态(state)来移除过这样的侦听..
马上试了下一下..
<mx:states>
  <mx:State name="statename">
    <mx:SetEventHandler target="{obj}" name="click"/>
  </mx:State>
</mx:states>运行了一下..果然成功了..

无耐之下只好把swf反编译一下...终于在代码里看到了
一个叫"__obj_click"的函数..

猜想这个应该就是由flex动态添加的函数..于是试了一下...

obj.removeEventListener("click",this["__obj_click"]);
//这里需要注意..为什么不直接使用__obj_click
而使用this["__obj_click"],
因为当flex编译时..__obj_click 这个函数还不存在,直接调用会出错..所以取巧一下..

保存运行..侦听成功删除...猜想正确...

分析一下该函数的规律..
第一部份是"__"
第二部份是对象ID
第三部份是"_"
第四部份是事件名

相应的
mouseOver事件就是__obj_mouseOver
mouseDown事件就是__obj_mouseDown

时间: 2024-09-12 17:46:52

flash MXML标签添加的侦听的相关文章

js跨浏览器的事件侦听器和事件对象的使用方法_javascript技巧

本文特意为跨浏览器实现添加事件侦听器和跨浏览器事件对象的使用方法做了下总结,并把这些方法打包,欢迎大家学习. 打包的一个EventUtil对象 var EventUtil = { // 添加侦听事件 addEventListener:function (element, type, handler) { // IE9+.Firefox.Safari.chrome和Opera if(element.addEventListener) { element.addEventListener(type,

用ISA 2006标准版发布Exchange 2010的OWA:创建Web侦听器

通过上面的步骤,我们完成了Exchange Server的配置工作,接下来需要配置ISA服务器,将内网的Exchange OWA发布给互联网上的用户访问. ISA是处于内网和外网之间的屏障,外网用户访问内网的Exchange时实际上访问的是ISA,所以要在ISA上导入Exchange的证书,ISA才能代表OWA站点向用户出具有效的证书.另外,在本实验拓扑中,ISA服务器处于工作组中,并不在域中,所以来自企业CA颁发的Exchange证书是不会自动被ISA信任的.解决方法就是将CA证书导入到ISA

java 标签组 鼠标监听

问题描述 java 标签组 鼠标监听 java标签组添加了鼠标监听,如何在鼠标点击时获得该标签的名字 解决方案 JLabel 不像按钮,要添加鼠标事件的话 用鼠标事件监听: JLabel jl = new JLabel(); jl.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { // 处理鼠标点击 } public void mouseEntered(MouseEvent e) { //

事件侦听器示例汇总

示例 事件的侦听器-广播器模型与事件处理函数方法不同,它允许多个代码片断互不冲突地侦听同一事件. 这么说吧,就好像订报纸,我们可以每隔5分钟去看一次报纸到没到,如果您的时间很充裕的话:也可以跟报刊店的老板打声招呼,告诉他报纸到了,就给送来.很明显,后者的效率远高于前者,在flash里面前者就像这样 this.onEnterFrame=function(){    if(paperArrived){        sendme();    }} 结果就是每一帧都得检验paperArrived是否为

[WSE]Web Service—后台侦听服务通过WSE2.0建立订阅/发布关系

web|后台 由于Web Service的执行身份受限,所以我们无法直接让Web Service申请作为一个SoapReceiver,而是通过下面的web.config定义来制定本虚拟目录的.ashx终结点,从而通过WS_Addressing和WS_Messaging机制来完成与后台侦听服务之间的订阅/发布机制. <configuration> <configSections>     <section name="microsoft.web.services&qu

Java理论与实践:做个好的(事件)侦听器

观察者模式在 Swing 开发中很常见,在 GUI 应用程序以外的场景中,它对 于消除组件的耦合性也非常有用.但是,仍然存在一些侦听器登记和调用方面的 常见缺陷.在 Java 理论与实践 的这一期中,Java 专家 Brian Goetz 就如何 做一个好的侦听器,以及如何对您的侦听器也友好,提供了一些感觉很好的建议 .请在相应的 讨论论坛 上与作者和其他读者分享您对这篇文章的想法.(您也 可以单击本文顶部或底部的 讨论 访问论坛.) Swing 框架以事件侦听器的形式广泛利用了观察者模式(也称

Win7下开启麦克风侦听功能

  我们以前在使用windows XP系统的时候,是不是会发现某些电脑对着麦克风发声有回声?那是因为我们在声音设置里面打开了"麦克风"下面的选项,以前的我很多时候把这个功能作为判定麦克风是好是坏的一个方法,不知道大家有没试过. 但是到了win7版本,我们如果在想用这个方法来判定麦克风好坏的话会发现,我们在声音里面找不到麦克风,也找不到那个可以打勾的地方,那么我们怎么来打开这个功能呢? 首先,我们可以看一下这个功能其实应该是叫"设备侦听",我们可以鼠标右键屏幕右下角的

Win7系统开启麦克风侦听功能图文讲解

  我们以前在使用windows XP系统的时候,是不是会发现某些电脑对着麦克风发声有回声?那是因为我们在声音设置里面打开了"麦克风"下面的选项,以前的我很多时候把这个功能作为判定麦克风是好是坏的一个方法,不知道大家有没试过. 但是到了win7版本,我们如果在想用这个方法来判定麦克风好坏的话会发现,我们在声音里面找不到麦克风,也找不到那个可以打勾的地方,那么我们怎么来打开这个功能呢? 首先,我们可以看一下这个功能其实应该是叫"设备侦听",我们可以鼠标右键屏幕右下角的

Win7下开启麦克风侦听功能图解

  我们以前在使用windows XP系统的时候,是不是会发现某些电脑对着麦克风发声有回声?那是因为我们在声音设置里面打开了"麦克风"下面的选项,以前的我很多时候把这个功能作为判定麦克风是好是坏的一个方法,不知道大家有没试过. 但是到了win7版本,我们如果在想用这个方法来判定麦克风好坏的话会发现,我们在声音里面找不到麦克风,也找不到那个可以打勾的地方,那么我们怎么来打开这个功能呢? 首先,我们可以看一下这个功能其实应该是叫"设备侦听",我们可以鼠标右键屏幕右下角的