Flex回调函数
? ? ? ? 首先要说明一下什么是回调函数?有什么作用? ? ? ? ? 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另一个方法调用的,用于对该事件或条件进行相应。 ? ? ? ? 回调函数实现的过程: ? ? ? ? 1. 定义一个回调函数; ? ? ? ? 2. 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; ? ? ? ? 3. 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。 ? ? ? ? 回调函数使调用者和被调用者分开,所以调用者不关心谁是被调用者。它只需要知道存在一个具有特定原型和限制条件的被调用函数。 ? ? ? ? 像之前写过的事件机制中,可以通过button.addEventListener(MouseEvent.Click,buttonClickHandler)的方式监听事件,这里就是一种回调函数的应用,我们先定义了一个buttonClickHandler方法,然后在初始化的时候将buttonClickHandler函数引用注册给addEventListener方法,当MouseEvent.Click发生的时候,通过这个函数引用回调我们写的buttonClickHandler方法,这个过程就是对回调函数的完美的应用。 ? ? ? ? 下面还是通过代码的方式,自己实现一个回调函数的应用,之前《Flex事件机制(二)》使用事件在父子组件之间传递数据,那么本篇通过回调函数来实现,遵循的过程就是文中提到的回调函数实现的过程。 ? ? ? ? 主应用文件Main.mxml <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:components="components.*" creationComplete="creationCompleteHandler(event)"> <fx:Script> <![CDATA[ import mx.events.FlexEvent; // 2. 初始化的时候,将回调函数的函数指针注册给调用者 protected function creationCompleteHandler(event:FlexEvent):void { component.callbackFunction = showData; } // 1. 定义一个回调函数 private function showData(data:String):void { textArea.text = data; } ]]> </fx:Script> <s:layout> <s:VerticalLayout/> </s:layout> <s:TextArea id="textArea" /> <components:component1 id="component" /> </s:Application>? ? ? ? 子组件文件components/component1.mxml <?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ public var callbackFunction:Function; //3. 当按钮被点击的时候,使用函数指针调用回调函数对事件进行处理。 protected function buttonClickHandler(event:MouseEvent):void { // 第一个参数是callbackFunction所在的对象,第二个参数是callbackFunction需要的参数 callbackFunction.call(this.parent,"哈哈"); } ]]> </fx:Script> <s:Button label="显示内容" click="buttonClickHandler(event)"/> </s:Group> ? ? ? ? Flex回调函数的基本应用就介绍完了,非常简单吧。欢迎大家对我的博文提出意见,因为这段时间参与的一个项目主要是Flex开发,所以总结的Flex比较多,也都比较初级,谢谢大家的支持。 ? ? ? ??本文来自:高爽|Coder,原文地址:http://www.voidcn.com/article/p-ybweisyu-kw.html。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 如何测试AD密码是否符合配置的复杂性要求?
- vb.net – 为什么在从同一个类的共享函数调用时,无法访问重
- .net – 如何清除asyncfileupload的文本框值?
- 为什么Ruby在抛出NameError异常后会保留代码评估?
- Cocos2d-X开发中国象棋《十四》游戏打包成APK
- Flex String类型的日期时间给日期组件赋值
- notepad2正则表达式替换字符串
- c# – XBAP中BrowserInteropHelper.HostScript不可用的自定
- Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery f
- c# – 从绝对路径获取流?