Flex回调函数

emWin Flex皮肤机制详解:从回调函数到自定义控件外观实战 在嵌入式GUI开发中,皮肤(Skinning)机制是实现界面定制化的核心技术,它通过将控件的视觉表现与逻辑处理分离,为开发者提供了高度的设计灵活性。其核心原理是基于回调函数的绘制系统,当控件需要渲染时,系统会调用预设的皮肤回调函数,并传入包含绘制命令、状态和区域信息的结构体,开发者只需响应特定命令即可实现像素级的自定义绘制。这项技术的价值在于,它允许在不修改核心业务代码的前提下,为产品打造独特的视觉品牌,并轻松适配不同硬件屏幕或实现运行时主题切换。在emWin图形库中,Flex皮肤机制被广泛应用于按钮、窗口 阅读详情

 首先要说明一下什么是回调函数?有什么作用?

        回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另一个方法调用的,用于对该事件或条件进行相应。

        回调函数实现的过程:

        1. 定义一个回调函数;

        2. 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;

        3. 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。

        回调函数使调用者和被调用者分开,所以调用者不关心谁是被调用者。它只需要知道存在一个具有特定原型和限制条件的被调用函数。

        像之前写过的事件机制中,可以通过button.addEventListener(MouseEvent.Click, buttonClickHandler)的方式监听事件,这里就是一种回调函数的应用,我们先定义了一个buttonClickHandler方法,然后在初始化的时候将buttonClickHandler函数引用注册给addEventListener方法,当MouseEvent.Click发生的时候,通过这个函数引用回调我们写的buttonClickHandler方法,这个过程就是对回调函数的完美的应用。

        下面还是通过代码的方式,自己实现一个回调函数的应用,之前《Flex事件机制(二)》使用事件在父子组件之间传递数据,那么本篇通过回调函数来实现,遵循的过程就是文中提到的回调函数实现的过程。

        主应用文件Main.mxml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.                xmlns:s="library://ns.adobe.com/flex/spark"   
  4.                xmlns:mx="library://ns.adobe.com/flex/mx"   
  5.                minWidth="955" minHeight="600"   
  6.                xmlns:components="components.*"  
  7.                creationComplete="creationCompleteHandler(event)">  
  8.     <fx:Script>  
  9.         <![CDATA[ 
  10.             import mx.events.FlexEvent;          
  11.             // 2. 初始化的时候,将回调函数的函数指针注册给调用者 
  12.             protected function creationCompleteHandler(event:FlexEvent):void 
  13.             { 
  14.                 component.callbackFunction = showData; 
  15.             }            
  16.             // 1. 定义一个回调函数 
  17.             private function showData(data:String):void 
  18.             { 
  19.                 textArea.text = data; 
  20.             }            
  21.         ]]>  
  22.     </fx:Script>  
  23.     <s:layout>  
  24.         <s:VerticalLayout/>  
  25.     </s:layout>  
  26.     <s:TextArea id="textArea" />  
  27.     <components:component1 id="component" />  
  28. </s:Application>  
        子组件文件components/component1.mxml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.          xmlns:s="library://ns.adobe.com/flex/spark"   
  4.          xmlns:mx="library://ns.adobe.com/flex/mx">    
  5.     <fx:Script>  
  6.         <![CDATA[ 
  7.             public var callbackFunction:Function;            
  8.             //3. 当按钮被点击的时候,使用函数指针调用回调函数对事件进行处理。 
  9.             protected function buttonClickHandler(event:MouseEvent):void 
  10.             { 
  11.                 // 第一个参数是callbackFunction所在的对象,第二个参数是callbackFunction需要的参数 
  12.                 callbackFunction.call(this.parent, "哈哈"); 
  13.             } 
  14.         ]]>  
  15.     </fx:Script>  
  16.     <s:Button label="显示内容" click="buttonClickHandler(event)"/>  
  17. </s:Group>  

        Flex回调函数的基本应用就介绍完了,非常简单吧。欢迎大家对我的博文提出意见,因为这段时间参与的一个项目主要是Flex开发,所以总结的Flex比较多,也都比较初级,谢谢大家的支持。

保姆级教程:在S32K312上配置C40驱动,实现Flash读写(基于RTD 4.4.2) 本文详细介绍了在S32K312微控制器上配置C40驱动实现Flash读写的全流程,基于RTD 4.4.2库。内容涵盖环境搭建、外设配置、Flash操作实战代码及高级应用场景,特别针对LLD驱动和FLS存储操作中的常见问题提供了解决方案,帮助开发者快速掌握嵌入式Flash存储技术。 阅读详情

相关推荐

Vmware 17保姆级教程:从零部署华为enspPro模拟器(附镜像下载+配置优化)

本文提供了一份详尽的Vmware 17部署华为eNSP Pro模拟器的保姆级教程。内容涵盖从镜像下载、虚拟机导入、网络配置到深度性能调优的全过程,并针对常见启动失败、设备卡顿等故障提供了实用的排查方案,旨在帮助网络工程师和华为认证备考者快速搭建稳定高效的实验环境。

arduino9maker的博客 638

回调函数(callback)是什么?一文理解回调函数(callback)

回调函数是一种特殊的函数,它作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。回调函数通常用于事件处理、异步编程和处理各种操作系统和框架的API。回调:指被传入到另一个函数的函数。异步编程:指在代码执行时不会阻塞程序运行的方式。事件驱动:指程序的执行是由外部事件触发而不是顺序执行的方式。回调函数的定义:回调函数是一个作为参数传递给其他函数的函数,它能够被异步调用以处理某些事件或完成某些任务。

Lion_Long的博客 8万+

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 535

C++回调函数的基本理解和使用

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 https://baike.baidu.com/item/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0...

一度凡尘的专栏 9万+

LSS(Lift, Splat, Shoot)算法解析

**LSS(Lift, Splat, Shoot)** 是一个比较经典的自下而上的构建BEV特征的3D目标检测算法,通过将图像特征反投影到3D空间生成伪视锥点云,通过`Efficientnet`算法提取云点的深度特征和图像特征并对深度信息进行估计,最终将点云特征转换到BEV空间下进行特征融合和后续的语义分割任务。 本篇按照LSS代码的运行逻辑,结合论文对LSS算法进行解析。

超爱吃小蛋糕的66的博客 8688

ADS高级技巧:用DAC控件实现多变量参数扫描(以S参数和阻抗匹配为例)

本文深入解析了ADS软件中DAC控件的高级应用,指导用户如何利用其实现多变量参数扫描。通过构建支持多变量的MDF文件,并将其与原理图变量动态映射,可以高效完成如S参数和阻抗匹配等复杂场景的联合仿真与可视化分析,显著提升射频电路设计的效率和深度。

3a9bq4r8t2y的博客 254

秒懂函数回调机制,回调函数看这篇就够了

什么是回调函数 友情提示:原理介绍部分摘自:https://www.jianshu.com/p/2f695d6fd64f有一定基础的直接跳过即可,直接查看后面精彩部分...回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的...

tiandiren111的专栏 2万+

从AMBA到USB:手把手教你评估和选择Synopsys DesignWare里的免费商用IP

本文详细介绍了如何评估和选择Synopsys DesignWare中的免费商用IP,从AMBA到USB等关键模块。通过技术参数核对、验证环境评估和集成注意事项,帮助工程师高效利用这些经过硅验证的商业级IP,提升SoC设计效率。文章还探讨了免费IP与付费IP的边界策略,避免常见陷阱。

weixin_42683394的博客 299

FLex回调函数

A页面中弹出一个窗体B,在B中进行操作之后并将返回值传递回A页面,A页面接受返回值之后再进行相应的处理。 我所采取的做法:     在B中做出如下声明: var callback:Function; var parentView:Object; 在B中需要回调的方法中写入: callback.call(parentView,[参数列表]);    在A中做如下处理: var b:B 在A中弹出B页...

zh_dream_success的专栏 178

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2641

ardupilot 方向余弦矩阵/旋转矩阵的理解

本节主要记录自己对ardupilot中用到的方向余弦矩阵/旋转矩阵的理解,欢迎批评指正,有些资料参考网上写的比较好的资料,免得查找资料麻烦。旋转矩阵的坐标理解:表示从旋转矩阵的下标的坐标系的坐标变换到上标表示的坐标系坐标下。旋转矩阵的坐标系理解:表示从旋转矩阵的上标的坐标系变换到下标表示的坐标系下。从旋转矩阵的投影更好理解,比如下面旋转矩阵的第一行是左边坐标系的第一维分量在右边坐标系的投影。

陌城烟雨 612

flex 回调函数没有被调用

flex 回调函数没有被调用? 出现这个问题,如果是在构造函数中只是new一个对象只是说明注册了,但是没有触发时间 回调函数没有执行一定是事件没有被触发

olfisher的专栏 804

基于ArduPilot的旋翼式无人机飞行器开发系列(二,学习路线)

一,热爱 作为一名耿直的技术男,在这里我只想说一句,热爱是可持续学习的第一要素,也只有热爱才能让你坚持到最后。 至于最后能得到什么,只有你自己知道。常说书中自有颜如玉,书中自有黄金屋。如果你是为了颜如玉,我相信大多数颜如玉做不了你的红颜知己。如果是为了黄金屋,当你持续投入时间和金钱却看不到回报的时候,相信退堂鼓早已隆隆作响。 我给自己的信条就是为当下努力工作,为将来持续学习。当前飞控行业并没有爆发,如果想赚块钱,去互联网汽车,去VR/AR吧,去元宇宙吧。 那么我热爱...

从0到1,突破自己 1675

Flex Alert的匿名回调函数如何得到正确的this

Flex中经常使用Alert来弹出提示或确认窗口,为了方便省事,会直接用匿名函数作为回调,但有时如果要调用外部的this,你会发现匿名函数中的this无法指向外部父类,可以使用e.target获取parent,当然这个parent是Alert.show的另一个参数所指定,正确写法如下: Alert.show("您的密码已过期,请及时修改登录密码!", "提示", Alert.OK|Alert...

weixin_33982670的博客 91

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Flex 回调函数

Flash里回调函数的简单示例 2010-09-09 16:21:23|  分类: as3 |  标签: |字号大中小 订阅 package {    import flash.display.MovieClip;    import DemoClass;            public class Main extends MovieClip  {               ...

domzhao2的博客 220

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Flex 回调函数的应用

这东西听着很牛X 其实就是那么简单的几句代码而已 快速易懂 其实这个东西可能用到最多的就是在父子窗体之间的传值 假设A页面是父亲,B页面是儿子 儿子需要把自己的手机号码告诉他父亲 首先你在A页面定义一个函数用于接收儿子那边的函数信息 //回调函数             private function closehander(phone:String):void

whhmkj的专栏 856

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Flex 中回调函数的写法

回调参数用法:(用于一个窗体调用另一个窗体,并有参数返回)   ----被调用窗体 public var callback:Function; //定义关闭窗口后调用的函数      // 选择对象    protected function OnSelectObject(e:Event):void    {     if (callback !=null)     {

one_dollar 3015

FLex回调函数的写法

我现在有个技术需求是: A页面中弹出一个窗体B,在B中进行操作之后并将返回值传递回A页面,A页面接受返回值之后再进行相应的处理。 我所采取的做法: 在B中做出如下声明: var callback:Function; var parentView:Object; 在B中需要回调的方法中写入: callback.call(parentView,[参数列表]); ...

JAVAZHICHIZHE的专栏 231

flex 回调函数时,IE浏览器下报错问题

try { document.getElementById("").SetReturnValue(__flash__toXML(excel.exportData(({headers:["本部/品类/品种","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","全年"],rows:["SNK-HYQ,46745406,2509

qq737895494的专栏 1001

回调函数

首先要说明一下什么是回调函数?有什么作用?         回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另一个方法调用的,用于对该事件或条件进行相应。         回调函数实现的过程:        

邹毅的专栏 410
上一篇: Flex4的bNavigator无法初始化首页以外的tab页问题
下一篇: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
cpp_lzth
博客等级 码龄19年 125粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值