博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex 使用wigdet组件库 实现自定义事件 派发 和 监听
阅读量:6801 次
发布时间:2019-06-26

本文共 2022 字,大约阅读时间需要 6 分钟。

在这里主要说明的是 在组件和模块之间传递事件是需要模块同时继承<viewer:BaseWigdet></viewer:BaseWigdet>才可以监听到事件。

 

wigdet本身的BaseWigdet就是一个模块,它是继承Module的。所以说你们如果是要在继承BaseWigdet的模块派发事件,然后在没有继承BaseWigdet的自定义组件里是监听不到的。如果你这样做的话,想实现事件监听那就把自定义组件去继承BaseWigdet就可以了。

 

自定义事件类  UploadEvent.as 

  

 1 package widgets.ProvincePgis.PlotSystem.planConfigurationManage.events
 2 {
 3     
/*
 4 
     * @Content 上传 事件类
 5 
     * @Author sange 
 6 
     * @E-mail: sange.chen@gmail.com 
 7 
     * @Version 1.0.0 
 8 
     * @Date:Apr 12, 2012 6:52:25 PM 
 9 
     
*/
10     
import flash.events.Event;
11     
import flash.events.EventDispatcher;
12     
13     
public 
class UploadEvent 
extends Event
14     {
15         
private 
var _data:
Object;
16         
17         
public 
static const UPLOAD_COMPLETE:
String = "uploadComplete";
18         
public 
static const UPLOADVIEW:
String = "uploadView";
19         
public 
static const UPLOAD_SECURITY_ERROR:
String="uploadSecurityError";
20         
public 
static const UPLOAD_ERROR:
String = "uploadIoError";
21         
22         
public 
static 
var dispatcher:EventDispatcher = new EventDispatcher();
23         
24         
public 
function UploadEvent(obj:
Object ,type:
String, bubbles:
Boolean=
false, cancelable:
Boolean=
false)
25         {        
26             _data = obj;
27             
super(type, bubbles, cancelable);
28         }
29         
30         
public 
function 
get data():
Object
31         {
32             
return _data;
33         }
34         
35         override 
public 
function clone():Event
36         {
37             
return new UploadEvent(_data,type,bubbles,cancelable);
38         }        
39     }
40 }

 看到定义了一个静态变量 dispatcher,是EventDispatcher类型,用dispatcher 

可以任何地方监听到。 

 

Main.mxml 

1 
var panl:IFlexDisplayObject = PopUpManager.createPopUp(this,FileUploadWidget,
true);
2                 PopUpManager.centerPopUp(panl);
3                 UploadEvent.dispatcher.dispatchEvent(new UploadEvent(__uploadFileUrl,UploadEvent.UPLOADVIEW));

 

 FileUploadWidget.mxml

 
 1 protected 
function init(event:FlexEvent):void 

 2             {

 3                 UploadEvent.dispatcher.addEventListener(UploadEvent.UPLOADVIEW,uploadViewHandler);

 4                 
 5                 _arrUploadFiles = new ArrayCollection();                
 6                 enableUI();
 7                 uploadCheck();
 8             }
 9 private function uploadViewHandler(e:UploadEvent):void
10             {
11                 _strUploadUrl = new String(e.data);
12             }

 

转载于:https://www.cnblogs.com/sange/archive/2012/04/18/2454885.html

你可能感兴趣的文章
《树莓派渗透测试实战》——第1章 树莓派和Kali Linux基础知识
查看>>
《圣殿祭司的ASP.NET4.0专家技术手册》----1-7 HTML5与CSS3的支持
查看>>
数据结构之链表
查看>>
八年了必须放手了,我不是你妈妈
查看>>
Eric S. Raymond 五部曲
查看>>
《Ansible权威指南 》一2.7 本章小结
查看>>
《iOS编程指南》——2.4节安装iOS SDK
查看>>
Comparing Mongo DB and Couch DB
查看>>
《配置管理最佳实践》——1.6 工具的选择
查看>>
前端工程师如何快速的开发一个微信JSSDK应用
查看>>
Apache Spark源码走读(九)如何进行代码跟读&使用Intellij idea调试Spark源码
查看>>
mysql 主从设计
查看>>
Android应用安全开发之浅谈网页打开APP
查看>>
后退时保存表单状态
查看>>
Python简介
查看>>
泛函编程(13)-无穷数据流-Infinite Stream
查看>>
XML与HTML
查看>>
采用镜像部署LNMP 环境操作步骤
查看>>
不服?来跑个分!
查看>>
Python笔记 开发环境搭建
查看>>