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

flex里通过addEventListener指定回调函数时指定更多参数

阅读更多

转载自:http://virgos.iteye.com/blog/480221

 

在flex里通过addEventListener函数给控件动态加载click事件侦听函数时,除了事件本身传递的Event类型参数外,还需要传递更多的参数,在网上找了一段代码,用起来还不错,张贴到这里。

   1. package  
   2. {  
   3.     public class EventArgExtend  
   4.     {  
   5.         public function EventArgExtend()  
   6.         {  
   7.         }  
   8.          
   9.         public static function create(f:Function,... arg):Function  
  10.         {  
  11.                var F:Boolean=false;  
  12.                var _f:Function=function(e:*,..._arg)  
  13.                {  
  14.                    _arg=arg  
  15.                    if(!F)  
  16.                    {  
  17.                        F=true  
  18.                        _arg.unshift(e)  
  19.                    }  
  20.                    f.apply(null,_arg)  
  21.                };  
  22.                return _f;  
  23.           }  
  24.           public static function toString():String  
  25.           {  
  26.                return "Class JEventDelegate";  
  27.           }  
  28.     }  
  29. }  

 =========================================== 使用的方式:
txtShow.addEventListener(MouseEvent.CLICK,EventArgExtend.create(clickHandler,1,"str"));

 

   1. private function clickHandler(e:Event,...arg):void  
   2. {  
   3.     Alert.show(arg[0].toString());  
   4.     Alert.show(arg[1].toString());  
   5. }  

 还有另外一个方法,没有封装效果,不过代码更加容易理解:

 

   1. var sayHello:String = "欢迎光临www.FlashJ.cn -Flash,Ria技术博客";  
   2. btn1.addEventListener(MouseEvent.CLICK,function (e:MouseEvent){clickHandlerWithArg(e,sayHello)});  
   3. function clickHandlerWithArg(e:MouseEvent,arg:String):void  
   4. {  
   5.     var out:String= e.target + "发出事件(有参数) :" + arg;  
   6.     trace(out);  
   7. }  
 
分享到:
评论

相关推荐

    Flex中函数传值调用Demo

    具体的实现方式可能包括事件监听、回调函数、类方法调用等。通过阅读和分析这些代码,可以更好地理解上述概念。 总之,"Flex中函数传值调用Demo"是一个实践性的教程,旨在帮助开发者理解和掌握在Flex环境中如何有效...

    Flex3+Socket编程示例

    接下来,我们编写处理这些事件的回调函数。在`onConnect`中,我们可以开始发送和接收数据;在`onData`中,解析接收到的数据并显示在聊天室界面上;`onError`处理任何错误;`onClose`则处理连接关闭的情况。 聊天室...

    Flex图片移动

    当鼠标在舞台上移动时,这个事件会被触发,我们可以在这个事件的回调函数中更新图片的位置。 三、显示对象的属性 图片在Flex中通常表示为BitmapData或Sprite对象。我们可以通过设置它们的x和y坐标属性来改变位置。...

    自定义的Alert-Flex4

    可以使用`addEventListener`方法添加监听器,并实现相应的回调函数。 4. **显示和关闭逻辑**: - 自定义Alert的显示和关闭逻辑可以通过调用`show()`和`close()`方法实现,或者根据需要重写这些方法以适应特定场景...

    Flex让GIF的图片动起来

    2. **事件监听**:在上述代码中,`Event.COMPLETE`事件监听器用于在GIF加载完成后执行回调函数。这确保了GIF图像已经完全加载并准备播放。 3. **帧速率控制**:虽然GIF自身包含了帧速率信息,但在Flex中,你可能...

    Flex 计时器源码 timer

    - **避免回调堆积**:在高频率触发计时器的情况下,如果处理不当,可能会导致回调函数堆积,从而影响程序性能。 - **兼容性和跨平台支持**:在不同的平台上部署Flex应用程序时,需要注意计时器的行为是否一致。 ...

    flex实现高亮闪烁显示polyline

    定义定时器的回调函数 `onTimer`,该函数将在每次定时器触发时执行。在函数内部,首先清空图形层中的所有内容,然后根据计数器的奇偶性决定是否重新绘制 Polyline。 ```as3 private function onTimer(event:...

    flex module实例

    通过调用`loadModule()`方法,并提供模块的URL和加载完成后的回调函数,可以实现动态加载。例如: ```actionscript var moduleLoader:ModuleLoader = new ModuleLoader(); moduleLoader.url = "MyModule.swf"; ...

    flex前台和后台交互例子

    后端处理请求后,通过回调函数将结果返回给前端。 7. **状态管理和数据管理** Flex提供了强大的状态管理机制,如ViewStack和FormNavigator,可以轻松处理不同页面间的交互和数据传递。同时,ModelLocator和Service...

    Flex4 Login DEMO project

    例如,使用`addEventListener`方法添加事件监听器,并实现相应的回调函数。 7. **状态管理**:Flex 4中的State机制允许根据不同的应用状态改变界面布局。在登录DEMO中,可能有登录前后的不同状态,比如错误提示状态...

    flex 4.5 播放器完善

    通过`addCallback`方法注册回调函数,可以让JS调用Flex中的方法。例如,我们可以在Flex中创建一个获取播放位置的方法: ```actionscript private function getPlaybackPosition():Number { return myPlayer.current...

    Flex--主程序与弹出窗口之间传递数据

    3. 在弹出窗口关闭时,可能需要将结果返回给主程序,同样可以通过事件或回调函数实现。 四、最佳实践 在设计Flex应用时,确保数据传递的清晰性和可维护性至关重要。遵循以下最佳实践: - **避免全局变量**:尽...

    Flex wav播放的一些学习网站

    创建一个Timer对象,设置延迟时间和回调函数。 9. **源码和工具**:标签中提到的“源码”和“工具”可能指的是用于处理WAV播放的示例代码或辅助工具。例如,可能会有第三方库或自定义组件帮助简化Flex中的音频处理...

    js翻书效果及书架式切换特效

    这通常通过`requestAnimationFrame`函数来实现,它会在浏览器下一次重绘之前调用指定的回调函数。 4. **DOM操作**:在翻页过程中,可能需要对DOM元素进行添加、删除或修改,以反映当前的翻页状态。 接下来,我们...

    点击放大图片效果,在标签用个函数就行,方便引用!

    在点击事件的回调函数内,我们可以实现放大图片的功能。一种常见的方法是创建一个新的`<div>`,作为图片的放大视窗,并将其设置为全屏或弹出窗口样式。首先,我们需要在HTML中添加这个`<div>`: ```html ;"> ```...

    js两张图片并列循环滚动图片特效

    5. 边界检测与循环逻辑:用条件语句判断图片是否到达边界,并执行相应的回调函数。 总的来说,“js两张图片并列循环滚动图片特效”是一个结合了JavaScript、CSS和HTML技术的网页互动组件,它提供了一种高效且灵活的...

    非常有用的js dialog

    7. **可配置性**:为了让这个对话框组件更灵活,它可能允许开发者传递参数来定制对话框的标题、内容、按钮、图标等,甚至支持回调函数来处理用户操作。 8. **示例代码**:提供的完整注释和示例对于初学者来说是非常...

    js和CSS3实现带详情页面的炫酷网格布局特效.zip

    1. 事件监听:通过`addEventListener`函数,我们可以监听用户的点击事件,并执行相应的回调函数,如展示或隐藏详情页面。 2. DOM操作:使用`document.querySelector`或`document.querySelectorAll`选取需要操作的...

    as3与java简单socket交互demo

    `会在连接成功时触发回调函数。 3. **数据发送**:通过`writeUTFBytes`或`writeUTF`方法向服务器发送字符串数据,如`socket.writeUTFBytes("发送的数据");`。 4. **数据接收**:当接收到数据时,`data`事件会被...

    JS实现图标菜单栏工具弹出特效代码.zip

    在这个回调函数中,我们可以操作CSS样式来实现弹出效果。一种常见的方式是改变菜单元素的`display`属性。默认情况下,菜单可以设置为`display: none`使其隐藏,然后在点击事件触发时切换到`block`或`flex`以显示菜单...

Global site tag (gtag.js) - Google Analytics