当您创建自己的自定义 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. Git如何删除版本库中的一个提交?

     如果不小心增加了一个最新的提交,可以通过以下的操作删除,记住:是删除最新的提交,如果回滚到其他的提交上面,就会导致之后的全部消失. 1.git reset --hard HEAD~1    2.gi ...

  2. SQL语句创建access表

    CREATE TABLE Persons(ID AutoIncrement primary key,Id_P int NOT NULL,LastName varchar(255) NOT NULL,s ...

  3. JavaScript 常用功能实现一览(一)

    摘自于网络:http://www.cnblogs.com/joinger/articles/1506482.html 适合阅读范围:对JavaScript一无所知-离精通只差一步之遥的人基础知识:HT ...

  4. event小解

    首先是一个小例子: <input type="text" onclick="a(event)"/> function a(event){   con ...

  5. ORA-12170: TNS:Connect timeout occurred

    VM 作为ORACLE 服务器,客户端登陆提示超时,本地连接使用网络连接正常. D:>sqlplus system/oracle123@//192.168.63.121:15021/pdb01 ...

  6. 从头到尾彻底解析Hash表算法

    作者:July.wuliming.pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解:第二部分为关于Hash表算法的详细阐述:第三部分为打造一个最快的Hash ...

  7. c语言判断打开文件是否为空的方法

    void writeReslut2(char* caseName,double averageTime,double max, double min,int loops,int size){ fpos ...

  8. HDU1865--More is better(统计并查集的秩(元素个数))

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  9. QT修改默认的滚动条样式

    这几天写一个类似于悬浮窗的小程序,可是qt自带的滚动条实在难看,经过多番查找终于找到一个类似于qq聊天窗口的滚动条,废话不说上代码.希望能帮到大家 1.写入到文件中,新建个xx.qss,然后复制一下内 ...

  10. Ubuntu下载工具 uget+aria2

    一.安装. uget和aria2都可以在“软件中心”中安装,但是版本太老啦,无法发挥作用,所以最好还是在终端中添加ppa进行安装: 1.uget的安装:  sudo add-apt-repositor ...