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

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比较多,也都比较初级,谢谢大家的支持。

本文来自:高爽|Java And Flex Corder,原文地址:http://blog.csdn.net/ghsau/article/details/7400556

分享到:
评论

相关推荐

    Flex回调函数应用示例

    回调函数就是一个通过函数指针调用的函数,回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另一个方法调用的,用于对该事件或条件进行相应

    Flex+php 批量上传源码 (可刷新进度条 )

    可以正确刷新批量上传时进度条。 源码为学习用途。所以写得随便了一些。 请留意javascript 有Flex 回调函数。

    flex(flash)文件上传,完全仿网易邮箱,内含asp.net实例

    //uploadAction:处理上传文件的网页 //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 ...//funSelected:js回调函数

    4、Flex3自定义事件、事件冒泡及传值、组件间的函数回调及传值

    NULL 博文链接:https://futurewwm.iteye.com/blog/1277119

    flex remot封装

    只需要修改endp为配置路径:endpoint,调用只需要new GetRemote(spring注入的service,方法名称,new Array(参数),调用正确的回调函数);即可

    flex文件上传源码

    param.ItemDate = (this.parameters.ItemDate == undefined || this.parameters.ItemDate == "") ? 31457280 : this.parameters.ItemDate;//ItemDate单文件大小限制,-1表示不限制,默认值为30M ...//回调的js函数

    Flex提取等值线—在线上直接显示数值

    2.可以通过生成等值线时的回调函数中的数值,在FeaturesLayer上动态添加。比较这两种方法,前者比较死板不灵活,而后者相对较好。Flex的显示能力跟颜色渲染能力带来的体验也比图片显示的效果要强很多。此范例使用第...

    微信小程序快速开发 视频指导版pdf

    微信小程序快速开发(视频指导版)根据微信小程序的内容,全面系统地介绍了微信小程序的搭建和开发。本书主要内容有小程序注册、编程基础知识、小程序...冒泡事件、回调函数、上传下载和录音API、第三方工具和代码调试。

    微信小程序快速开发 视频指导版

    微信小程序快速开发:视频指导版》是2017年5月由人民邮电出版社出版的...冒泡事件、回调函数、上传下载和录音API、第三方工具和代码调试。本书特点为零基础入门,手把手教你小程序开发。配套开发视频,全程同步指导。

    动态改变字体颜色

    使用styleFunction属性指定一个回调函数来定义表格行样式,根据数据动态显示出不同的颜色

    flexDash:一个 JQueryUI 插件,用于创建由多个小部件组成的用户可自定义仪表板页面(类似于 MyYahoo.com、Start.Me 和 Protopage.com)

    更具体地说,flexDash 为交互用户请求的每个动作调用客户端应用程序提供的回调函数。 对仪表板布局或仪表板内容的任何修改都会触发“已更改”事件。 “loadFromJson”方法将仪表板状态设置为先前序列化为给定 JSON...

    mms2FlexChat:允许客户发送MMS媒体并在“灵活聊天”窗口中呈现

    脚步:Twilio函数mmsHandler.js:每次发生代理交互时都会调用此Twilio函数-通过使用代理回调URI-该函数将检查发送的SMS消息上是否存在MMS。 send-media-message.js:Flex插件调用此Twilio函数,以使用Messages API将...

    leetcode答案-Interview:大前端开发面试题汇总收集,持续更新中~

    JavaScript异步的处理方式(回调、promise、generator、async) 手写promise的all方法 手写实现promise Es6 常用 es6 语法 使用es5实现es6的class CSS css选择器的优先级 css实现图片自适应宽高 flex,flex常用属性,...

    emWin5用户手册(中文)

    emWin 图形库 图形用户界面 版本 5.12 手册修订版 0 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co....9 1 emWin 简介...................................................................

    asp.net知识库

    Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0...

Global site tag (gtag.js) - Google Analytics