1、通过dispatchEvent委托事件模式完成自定义事件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  3. creationComplete="application1_creationCompleteHandler()"
  4. xmlns:s="library://ns.adobe.com/flex/spark"
  5. xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
  6. <fx:Declarations>
  7. <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  8. </fx:Declarations>
  9. <fx:Script>
  10. <![CDATA[
  11. import mx.controls.Alert;
  12. import mx.events.FlexEvent;
  13. import mx.messaging.events.MessageEvent;
  14.  
  15. protected function application1_creationCompleteHandler():void
  16. {
  17. this.addEventListener("Clicked",clickedHandler);
  18. Alert.show(" creationComplete ","提示");
  19. }
  20.  
  21. private function clickedHandler(e:Event):void{
  22. Alert.show("事件响应","提示");
  23. }
  24.  
  25. protected function button1_clickHandler():void
  26. {
  27. dispatchEvent(new Event("Clicked"));
  28. Alert.show(" click ","提示");
  29. }
  30.  
  31. ]]>
  32. </fx:Script>
  33. <fx:Metadata>
  34. [Event(name="Clicked",type="flash.events.Event")]
  35. </fx:Metadata>
  36. <s:Button x="102" y="29" label="按钮" enabled="true" width="85" height="35" click="button1_clickHandler()" />
  37. </s:Application>

2、通过继承Event类是实现自定义事件:

  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" creationComplete="application1_creationCompleteHandler(event)"
  4. xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
  5. <s:layout>
  6. <s:BasicLayout/>
  7. </s:layout>
  8. <fx:Script>
  9. <![CDATA[
  10. import com.flex.event.MyEvent;
  11.  
  12. import mx.controls.Alert;
  13. import mx.events.FlexEvent;
  14.  
  15. protected function application1_creationCompleteHandler(event:FlexEvent):void
  16. {
  17. this.addEventListener(MyEvent.MYEVENT,eventHindler);
  18. }
  19. //自定义函数
  20. private function eventHindler(e:MyEvent):void{
  21. Alert.show("事件响应结果:"+e.getEventObj(),"提示");
  22. }
  23.  
  24. protected function button1_clickHandler(event:MouseEvent):void
  25. {
  26. var evt:MyEvent = new MyEvent(MyEvent.MYEVENT,122);
  27. dispatchEvent(evt); //将事件发送出去
  28. }
  29.  
  30. ]]>
  31. </fx:Script>
  32. <fx:Declarations>
  33.  
  34. </fx:Declarations>
  35. <s:Button x="93" y="59" label="click me" click="button1_clickHandler(event)"/>
  36. </s:Application>

  MyEvent类定义:

  

  1. package com.flex.event
  2. {
  3. import flash.events.Event;
  4.  
  5. public class MyEvent extends Event
  6. {
  7. public static const MYEVENT:String="myevent";
  8. private var eventObj:int;
  9. public function MyEvent(type:String, i:int,bubbles:Boolean=false, cancelable:Boolean=false)
  10. {
  11. super(type, bubbles, cancelable);
  12. this.eventObj=i;
  13. }
  14. public function getEventObj():int{
  15. return this.eventObj;
  16. }
  17. }
  18. }

Flex之自定义事件的更多相关文章

  1. 【教程】【FLEX】#003 自定义事件、模块间通讯

    本篇笔记,主要阐明 事件是如何创建 和 如何使用自定义事件达到模块之间通讯 的效果. 句子解释: 什么叫做模块之间的通讯呢?? 简单点说,就是两个模块之间可以互相传数据. A模块 可以接收到 B模块的 ...

  2. Flex 自定义事件

    一.分派自定义事件类型 任何实现flash.event.IEventDispatcher接口的对象都可以分派事件,这包括所有显示对象和一些非显示对象类.通常,对于 自定义的非显示类,可以通过扩展fla ...

  3. Flex事件机制学习-自定义事件实现类间通信 .

    今天,学习Flex自定义事件,可以使两个类通信,定义一个Main类. public class Main extends Sprite     {            public function ...

  4. FLEX自定义事件

    有时候我们需要让两个组件之间实现联动,并且在其中传递数据,自定义事件机制可以帮助我们比较优雅的实现这种需要. 下面的例子,是打算实现一个列表和一个编辑框的联动. 编辑框代码 <?xml vers ...

  5. flex中dispatchEvent的用法(自定义事件) .

    Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实 ...

  6. [置顶] flex4事件监听与自定义事件分发(三)

    1.我们来说一下自定义事件子类.什么时候创建新的事件类以及怎么创建. (1)说一下,我们什么时候需要自定义事件类.举例说明,在flex中事件的基类是Event,而当我们点击某个按钮或者是单击某个组件的 ...

  7. ExtJS自定义事件

    1.开发ExtJS组件UI的时候,基本上对于一些操作,就是与后台交互之类的多数都是用户进行点击触发一个事件,在事件的处理器handler里面调具体的业务方法,完成业务数据的处理以及业务流程的流转机制, ...

  8. 谈谈JS的观察者模式(自定义事件)

    呼呼...前不久参加了一个笔试,里面有一到JS编程题,当时看着题目就蒙圈...后来研究了一下,原来就是所谓的观察者模式.就记下来...^_^ 题目 [附加题] 请实现下面的自定义事件 Event 对象 ...

  9. Javascript之自定义事件

    Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加.删除事件. 下面通过实例,一步一步构建一个具体的Javasc ...

随机推荐

  1. 由反汇编C程序来理解计算机是如何工作的

    C语言代码 int g(int x) { return x + 109; } int f(int x) { return g(x); } int main() { return f(122) + 3; ...

  2. Maven —— 如何设置HTTP代理

    公司需要设置代理才能上网,而运行Maven时需要下载依赖的库. 怎么办呢? 原来Maven也像IE一样,可以设置代理的. 步骤如下: ·编辑 ~/.m2/setting.xml 文件.如果该目录下没有 ...

  3. [LightOJ1004]Monkey Banana Problem(dp)

    题目链接:http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1004 题意:数塔的变形,上面一个下面一个,看清楚 ...

  4. 台湾P2P平台

    2014年6月28日下午1:30,“2014两岸三地P2P网贷行业高峰论坛”在上海会展中心友谊会堂如期举行,现场高朋满座,来自全国各地的众多知名P2P网站平台的负责人参与了讨论,并就当前P2P行业的一 ...

  5. HeadFirst jsp 02 (体系结构)

    当请求到来时, 必须有人实例化 servlet, 或者至少建立一个新的线程来处理这个请求. 必须有人调用 servlet 的 doPost()或 doGet()方法. 另外还的有人管理 servlet ...

  6. sass 常用函数的整理

    @charset "utf-8"; @import "compass/css3/inline-block"; @import "compass/css ...

  7. Asp.Net使用代理IP远程获取数据

    /// <summary> /// 远程获取数据 /// </summary> /// <param name="url">url</pa ...

  8. ubuntu搭建DNS

    ubuntu搭建DNS 一.     bind简介: BIND是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,主要包括以下三种: *域名服务器 *D ...

  9. SQL语句方法语法总结(二)

    1.给表插入数据. (1)INSERT INTO TBL_NAME VALUES (VALUE_1,VALUE_2,...) (2)INSERT INTO TBL_NAME (COL_1,COL_2, ...

  10. c#Winform程序,让pictureBox显示图像(包含GIF),并且不被占用,能即时删除图片。

    最近在做一个图片浏览的工具, 需要在PictureBox中显示图像文件, 包括gif播放.  且不能被程序独占, 就算winform的程序正在显示这张图, 也能在资源管理器里delete它. 看了看网 ...