如何向事件监听器传送额外的参数
问题摘要
在FLEX文档中所述的是,如果你要向监听器传送参数,那么你最好使用MXML标签,但是在这里要展示给你的是如何使用AS脚本完成。
解决摘要
使用内联函数
解释
solution is very simple, basically for following scenario :
arbitrary button called ABCButton,function ABCButtonListener needs to listen to click event and also receive extra parameter
"myPrivateSpecialObject"
object.
you do following :
private function ABCButtonListener(e:MouseEvent,specialObj:Object): void {
Alert.show(specialObj.name);
}
private function methodWhereyouDostuffAndRegisterListener(): void {
var myPrivateSpecialObject:Object = {name:"Special String Ingredients for Orange"};
ABCButton.addEventListener(MouseEvent.CLICK,function (e:MouseEvent) : void {
ABCButtonListener(e,myPrivateSpecialObject);
});
}
P.S -----------------
you can use same structure to register listener for more than one button,for example :
private function methodWhereyouDostuffAndRegisterListener(): void {
var myPrivateSpecialObject:Object = {name:"Special String Ingredients for Orange"};
ABCButton.addEventListener(MouseEvent.CLICK,function (e:MouseEvent) : void {
ABCButtonListener(e,myPrivateSpecialObject);
});
myPrivateSpecialObject = {name:"Special Ingredients for Apple"};
OtherButtonButton.addEventListener(MouseEvent.CLICK,function (e:MouseEvent) : void {
ABCButtonListener(e,myPrivateSpecialObject);
});
}
above code registers same listener for two buttons but before registering second listener , we try to modify
myPrivateSpecialObject
so, reference is changed to have different value, but if you assume now each listener received different value , its not correct, they will both received latest assigned value . overall inline function is good technique to pass any number of parameters to a listener as long as listener is ready for those parameters.
Related files for download
bin-release1.zipmain.swf
分享到:
相关推荐
android 外部类作为事件监听器类 ,外部类形式的事件监听器不能自由访问创建GUI界面
2. 对某个源注册一个监听器,此源便成为一个事件源,当事件源上发生某一个动作时,监听器的某个方法将会被调用执行,在执行事件监听器的这个方法时,同时会把事件监听对象传递给此方法,开发人员在监听器中可以拿到...
当你将一个类用作事件监听器时,你已经设置好一个特定的事件类型,它会用该类进行监听。接下来的操作是:一个匹配的监听器必须被加入到该组件中 组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来 ...
JAVA事件监听器的四种实现方式,条理清晰,简明易懂,看过就学会
鼠标相应,监听器的设置等简单的代码,希望对你有帮助
使用Qt封装的支持Windows、Linux的跨平台全局鼠标、键盘事件监听器库
事件监听器
本资源用于servlet事件监听器和JSP基础学习,非常适合新手学习
定义一个按钮bn,并通过创建匿名内部类实现事件监听bn是否被按下。
Passive Event Listeners - 被动事件监听器在写webapp页面的时候,Chrome 提醒 [Violat
ProductivityToolkit-Unity事件监听器系统插件 Unity事件监听器系统 直观且快速地设置自定义事件,用于减少对象依赖的常见方法!几乎没有额外的代码来结构化游戏逻辑,可以通过拖放在检查器中处理事件订阅,可以在...
简单好用的全局监听器,没有用任何的第三方库,代码简单明了
1.原理: 当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。... 2.2当事件源上发生操作时,它会调用事件监听器的一个方法,并且调用这个方法时,会传递事件对象过来 2.3事件监听器是由开
Java事件处理机制- 事件监听器的四种实现方式 分析的非常好
是笔者学习java swing事件、监听器、接口方法的总结,希望对初学java者有所帮助,是word格式,希望有人进一步总结。
按钮单击事件一例,Android环境下,单击按钮后,改变 按钮背景颜色,通过这个功能来练习单击事件的监听器用法: super.onCreate(savedInstanceState); setContentView(R.layout.main);//设置当前屏幕 Button ...
JList事件监听器方法实现代码
keycloak-kafka-事件监听器自定义事件监听器,将所有Keycloak事件发布到Kafka
做好的事件监听器1
事件发生时会触发监听器的成员方法,即事件处理器,传递事件对象。 事件处理器通过事件对象获得事件源,并对事件源进行处理。 Listener监听器 用于监听域对象创建和销毁的事件监听器 用于监听域对象属性增加和删除的...