当您创建自己的自定义 Event 类时,必须覆盖继承的 Event.clone() 方法,以复制自定义类的属性。如果您未设置在事件子类中添加的所有属性,则当侦听器处理重新分派的事件时,这些属性将不会有正确的值。

自定义事件类 继承flash.events.Event类 下面看代码 其中 message 是自定义的属性, 下面要使用这个属性 来传递参数

[java]      view plain    copy

 
  1. package com.demo.event
  2. {
  3. import flash.events.Event;
  4. public class TestEvent extends Event
  5. {
  6. public static const EVENT_CLICK:String = "copy_text";
  7. public var message:String;
  8. public function TestEvent(type:String, message:String)
  9. {
  10. super(type);
  11. this.message = message;
  12. }
  13. override public function clone():Event{
  14. return new TestEvent(type,message);
  15. }
  16. }
  17. }

接下来建立一个控件 来指派这个事件
注册事件 CopyText

<fx:Metadata>   [Event(name="CopyText",type="com.demo.event.TestEvent")]  </fx:Metadata> 指派事件

protected function button1_clickHandler(event:MouseEvent):void    {     dispatchEvent(new TestEvent("CopyText",tempText.text));    }

[c-sharp]      view plain    copy

 
  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" width="400" height="300">
  5. <s:layout>
  6. <s:BasicLayout/>
  7. </s:layout>
  8. <fx:Metadata>
  9. [Event(name="CopyText",type="com.demo.event.TestEvent")]
  10. </fx:Metadata>
  11. <fx:Script>
  12. <!--[CDATA[
  13. import com.demo.event.TestEvent;
  14. protected function button1_clickHandler(event:MouseEvent):void
  15. {
  16. dispatchEvent(new TestEvent("CopyText",tempText.text));
  17. }
  18. ]]-->
  19. </fx:Script>
  20. <fx:Declarations>
  21. <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  22. </fx:Declarations>
  23. <s:TextInput x="10" y="10" height="107" width="260" id="tempText"/>
  24. <s:Button x="14" y="124" label="Copy" click="button1_clickHandler(event)"/>
  25. </s:Group>

最后将这个控件放到主程序中, 并使用了这个自定义事件

[c-sharp]      view plain    copy

 
  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" minWidth="955" minHeight="600" xmlns:components="com.demo.view.components.*">
  5. <s:layout>
  6. <s:BasicLayout/>
  7. </s:layout>
  8. <fx:Script>
  9. <!--[CDATA[
  10. import com.demo.event.TestEvent;
  11. protected function testforms1_CopyTextHandler(event:TestEvent):void
  12. {
  13. this.t.text = event.message;
  14. }
  15. ]]-->
  16. </fx:Script>
  17. <fx:Declarations>
  18. <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  19. </fx:Declarations>
  20. <components:testForms x="23" y="28" CopyText="testforms1_CopyTextHandler(event)">
  21. </components:testForms>
  22. <s:TextInput x="440" y="28" width="227" height="184" id="t"/>
  23. </s:Application>

flex中Event类的使用的更多相关文章

  1. AS3中 Event 类的target和currentTarget属性

    在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数.通过这个参数就可以使用事件类的属性和方法.其中target与currentTarget属性是两个很相似的属性. 对于简单的事件处理过程,分清 ...

  2. Flex中如何利用FocusManager类的setFocus函数设置TextInput的焦点的例子

    参考:https://blog.csdn.net/liruizhuang/article/details/5876455 <?xml version="1.0" encodi ...

  3. Flex的 Event中属性currentTarget与target的区别

    Flex的 Event中属性currentTarget与target的区别 1.区别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...

  4. Flex的 Event中属性currentTarget与target的差别

    Flex的 Event中属性currentTarget与target的差别 1.差别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...

  5. AS与JS相互通信(Flex中调用js函数)

    转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是:     1.导入包 (import f ...

  6. SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】

    一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...

  7. Flex中NetConnection与NetStream的关系、及浏览器并发连接数测试[转]

    最近在做一个基于BS结构的视频会议系统,决定采用开源的FluorineFx.net与Flex结合的方法进行开发,前期开发都非常顺利,包括同步白板等.但到了实时视频传输的时候,原本设计是每个客户端可以显 ...

  8. Flex与Java交互(Flex调用java类展示数据)解析xml展示数据

    Flex与java通信最简单例子(详细说明了各种需要注意的配置):http://blog.csdn.net/u010011052/article/details/9116869 Flex与java通信 ...

  9. 使用as3crypto在Flex中实现AES加密

    要在Flex中实现AES加密,可以通过as3crypto实现.但是as3crypto本身的用法比较复杂,一般是封装一下再调用. 下面是9RIA上的一篇文章给出的一个实现,使用中稍感不方便(见注释): ...

随机推荐

  1. python引入模块时import与from ... import的区别

    import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定. import datetime print datetime.da ...

  2. WPF_DatePiker控件的禁止输入

    <!--DatePicker没有只读属性,需要修改里面的DatePickerTextbox--!> <DatePicker.Resources> <Style Targe ...

  3. 【转】linux ls -l的详解

    原文:http://blog.csdn.net/sjzs5590/article/details/8254527 以root的家目录为例: 可以看到,用ls -l命令查看某一个目录会得到一个7个字段的 ...

  4. git repository 的使用

    1. You should only be pushing to a bare repository. A bare repository is a repository that has no ch ...

  5. Spring Boot 系列教程4-JDBC

    JDBC Java Data Base Connectivity,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.不管是Hibe ...

  6. 转一篇分析C语言调用时栈的变化的好文

    http://blog.csdn.net/zsy2020314/article/details/9429707

  7. js 关键字 in

    对于数组 ,迭代出来的是数组元 素,对于对象 ,迭代出来的是对象的属性: var x var mycars = new Array() mycars[0] = "Saab" myc ...

  8. fpSpread1 简单用法

    //如果汇总的话直接可在模板里面填写公式,不过要有三行空行才行 比如SUM(A1,A2,A3) fpSpread1.Sheets[0].RowCount = 30; fpSpread1.Sheets[ ...

  9. javascript语句语义大全(5)

    1. var str = "abcd";alert(str.length);alert(str.charAt(0));//获取下标为0的字符alert(str.charCodeAt ...

  10. Python虚拟环境安装virtualenv

    解决了多个版本共存的问题 virtualenv 为每个不同项目提供一份 Python 安装.它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立. 安装vir ...