教你7步实现fle自定义Event及参数传递

教你7步实现flex自定义Event及参数传递Flex应用开发过程中如需要灵活的在不同组件(如A与B,父与子)之间响应事件,传递参数等功能时就会使用自定义事件(Event)机制,下面通过一个事例分七步,通过自定义Event和EventDispatcher两种机制实现事件交互和参数传递;事例描述:有一个父亲“parentApp.mxml”有两个儿子“comBrotherA.mxml”和"comBrotherB.mxml",新年降至,两个儿子为表孝心分别给他们老爸存入(事件)一笔过节费(事件参数),并通知老爸我存钱进去了,老爸在收到两个儿子的钱后汇总后同时告诉(事件)两个儿子钱我已收到总数(事件参数)是多少...1、第一步:引入自定义注册事件参数传递扩展类(来自网络)viewplaincopytoclipboardprint?1.packagemyeventhelper2.{3.//自定义注册事件参数传递扩展类4.publicclassEventArgExtend5.{6.publicfunctionEventArgExtend()7.{8.}9.publicstaticfunctioncreate(f:Function,...arg):Function//动态参数创建10.{11.varF: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.publicstaticfunctiontoString():String25.{26.return"ClassJEventDelegate";27.}28.}29.}2、第二步:自定义事件触发类:viewplaincopytoclipboardprint?1.packagemyeventhelper2.{3.importflash.events.EventDispatcher;4.5.importmx.core.UIComponent;6.//自定义事件触发类7.publicclassMyEventDispatcherextendsEventDispatcher8.{9.privatestaticvar_instance:MyEventDispatcher;10.publicstaticconstEXEC_PARENT_METHOD:String="ExecParentMethod";//执行Parent方法11.publicstaticfunctiongetInstance():MyEventDispatcher12.{13.if(_instance==null){14._instance=newMyEventDispatcher();15.}16.return_instance;17.}18.publicvarSource:UIComponent;//事件源对象19.publicvarParsms:Object;//主要用于参数传递20.}21.}3、第三步:用户自定义事件类viewplaincopytoclipboardprint?1.packagemyeventhelper2.{3.importmx.events.FlexEvent;4.//用户自定义事件类5.publicclassMyExtendEventextendsFlexEvent6.{7.publicstaticconstEXEC_BROTHER_METHOD:String="ExecBrotherMethod";//执行兄弟方法8.9.publicvarparam:Object;10.publicfunctionMyExtendEvent(o:Object,type:String,bubbles:Boolean=false,cancelable:Boolean=false)11.{12.super(type,bubbles,cancelable);13.this.param=o;//也可通过这样的方式传递参数14.}15.}16.}4、第四步:完成儿子A“comBrotherA.mxml”:viewplaincopytoclipboardprint?1.<?xmlversion="1.0"encoding="utf-8"?>2.<mx:Panelxmlns:mx="wwadobe/2006/mxml"width="222"height="170"title="组件A"creationComplete="init()">3.<mx:Script>4.<!--[CDATA[5.importmyeventhelper.MyExtendEvent;6.importmyeventhelper.MyEventDispatcher;7.importmyeventhelper.EventArgExtend;8.privatevarexecParent:MyEventDispatcher;//触发父亲节点事件9.functioninit():void10.{11.execParent=MyEventDispatcher.getInstance();12.}13.publicfunctiononGetParentTotal(e:MyExtendEvent,...agrs):void14.{15.//下面两种方法都可以用来传递参数16.//this.labTotal.text=String(agrs[0].totalValue);17.this.labTotal.text=e.param.toString();18.}19.publicfunctiononParentEvent(event:Event):void20.{21.execParent.Parsms=txtValue.text;22.execParent.Source=this;23.execParent.dispatchEvent(newEvent(MyEventDispatcher.EXEC_PARENT_METHOD));24.}25.26.]]-->27.</mx:Script>28.<mx:Canvasheight="90"width="197">29.<mx:TextInputwidth="92"y="10"x="85"id="txtValue"/>30.<mx:Labelx="13"y="12"text="存入:"/>31.<mx:Labelx="87"y="56"width="90"id="labTotal"/>32.<mx:Labelx="5"y="56"text="ParentTotal:"/>33.</mx:Canvas>34.<mx:ControlBar>35.<mx:Buttonlabel="调用父方法"id="btnExecParent"click="onParent...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?