今天在钻研一个pureMVC例子的时候,似乎恍然领悟了自定义Event的意义。自定义Event的不解一直困扰着我,具体说来就是我不知道自定义Event有什么用,怎么用。今天这一切烦恼或者是不解都不将存在。
自定义Event:用来清除注册表单中的用户名和密码,这些具体算法封装在方法clearForm中。
本文讲解自定义Event使用了两个文件,一个是UserForm.mxml(定义Event),另一个是UserFormMediator.as(注册和调用Event)。
...
<mx:Metadata>
[Event('cancel')]
</mx:Metadata>
<mx:Script>
<![CDATA[
public static const CANCEL: String = "cancel"
private function cancel():void{
dispatchEvent(new Event(CANCEL));
}
]]>
</mx:Script>
...
<mx:Button id="cancelButton" click="cancel();" />
...
其中[Event('cancel')]定义了Event.type为'cancel',在Script代码段中,通过cancel方法直接派发(dispatchEvent)用户自定义事件CANCEL(常量,存储的cancel)。这个方法会在取消按钮(cancelButton)点击时被调用。也就是说,当点击取消按钮后,会派发CANCEL事件。
CANCEL事件派发了,但是派发出去的事件有什么用呢?派发出去了事件,难道用户表单就可以被清空了么?并非如此,接着看。下面在UserFormMediator.as文件中注册CANCEL事件,并详细定义“清空”方法。
...
userForm.addEventListener(UserForm.CANCEL, onCancel);
...
private function onCancel(event:Event):void{
clearForm();
}
private function clearForm():void{
/*
这里自定义清空用户表单的方法
*/
}
...
userForm.addEventListener(...)注册了事件。括号中的第一个参数UserForm.CANCEL引用的是UserForm类(即UserForm.mxml,在Flex中美一个mxml都是一个类)中的CANCEL常量,其实就是“cancel”;第二个参数表示要调用的方法即onCancel,注意onCancel方法中的参数event必须是和UserForm.CANCEL对应的Event一致(不要忘记上一个文件定义的[Event("cancel")]是一个Event。这样通过调用clearForm方法就可以清除用户表单信息了。
在把思路整理一遍:
用户单击"取消“按钮,用户表单上的文字是如何消失的呢?
原本可以直接调用clearForm方法,但是我们这里不采用这一手段,我们采用自定义Event。这也是本文中心。
用户单击“取消”按钮,触发UserForm.mxml中的cancel方法;
cancel方法中派发CANCEL事件;
由于UserFormMediator.as文件中已经addEventListener了CANCEL事件,因此可执行被注册监听器方法onCancel;
onCancel监听器方法中调用并执行了clearForm方法(clearForm方法中定义了具体的清除用户表单的步骤)。
本文作者吴磊,转载请注明作者姓名和文章地址http://superwulei.iteye.com/admin/blogs/480829
分享到:
相关推荐
教你7步实现flex自定义Event与参数传递.doc
自定义日历聚合物组件,支持事件显示。 支持每月、每周、每天和列表视图。 演示 安装 使用安装组件: $ bower install event-calendar --save 或 。 用法 导入 Web Components 的 polyfill: < script src =...
VB用户自定义事件绕来绕去的,翻了半天书也不好弄清楚,最后还是仔细翻看MSDN的事例弄有了。我把它贴成了VB可运行工程,试运行一下就很有体验感了,学起来省时省力。取之于MSDN用之于需要的学习,不需要消耗积分。
代码如下: $().ready(function(){ for(var i=0;i<5;i++){ /** * 这种写法不专业,如果处于循环里,就会注册5次事件,...“hahahaha”); // });... $(“#aa”).bind(“click”,function(){ alert(“oooooo”)...
FreeSwitch完整的自定义模块定义和改善自定义事件的例子,详细介绍见博客:https://blog.csdn.net/xxm524/article/details/126211171
javascript实现自定义事件,纯javascript不含vbscript。 通过自定义的HashMap.js和EventManager.js实现自定义事件的监听addEvent和发布fireEvent
RaiseEvent 触发类、窗体或文档中在模块级声明的事件; WithEvents 声明一个对象时,可以使用该对象的事件
本文实例为大家分享了Qt自定义图形实现拖拽...void QEventView::paintEvent(QPaintEvent *event) { resize(115+m_iLen,36); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.se
中文文档:television:现场演示安装// npm npm install vue2-event-calendar --save //纱线纱线添加vue2-event-calendar导入和用法Import //导入组件导入'vue2-event-calendar / dist / vue2-event -calendar.css'从'...
JAVA自定义事件详解 java.util.EventObject java.util.EventListener
在Qt中,你可以创建自定义事件类型,以便在应用程序中传递自定义的信息。...4. **接收和处理自定义事件:** 在事件接收者处重载`event(QEvent *event)`函数,检查事件的类型,并根据需要处理自定义事件。
Eventlog Analyzer日志管理系统、日志分析工具、日志服务器的功能及作用 Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机、服务器、网络设备、数据库以及各种应用服务系统等...
gtk自定义好的接口函数,以及封装好的list,滑动密码锁等等,方便使用
PB中自定义事件ID含义 Event ID 含义 内容浅析
一个可创建Google Calendar Event hyperlinks 的ASP.NET 自定义控件源码。
Windows Event Log 日志管理工具,功能包括添加Event Source,添加Event Log,删除Event Source,删除EventLog. 可用于Web项目发布中对自定义日志的管理。 因需要一定系统访问权限,请使用管理员权限登录使用。
+ Added Custom columns - you can extract information from description and display it in event list. + Added alerts by event type. * NewAPI: Event description could be missing for some events. Fixed. *...
自定义一个滑动开关view,同时响应滑动和点击事件。但有个疑问为什么click事件在onTouchEvent的switch的case up之后,即使我把super.onTouchEvent(event)写在switch之前的?
Windows Event Log 日志管理工具,功能包括添加Event Source,添加Event Log,删除Event Source,删除EventLog. 可用于Web项目发布中对自定义日志的管理。 因需要一定系统访问权限,请使用管理员权限登录使用。