zoukankan      html  css  js  c++  java
  • Flex自定义事件的使用心得


    由于工作关系,只能简单整理下曾经做项目的心得,这里先谈谈As3.0的自定义事件。

    对初学者可能感觉自定义很复杂,但等你克服恐惧真的用多了的话就会发觉其实自定义事件很简单,但正是简单的它可以让你的程序更灵活。

    首先打开一个Flex项目 新建一个As类 让他继承Event,自动会生成一下代码:

    1. package com.event  
    2. {  
    3.     import flash.events.Event;  
    4.     public class myEvent extends Event  
    5.     {  
    6.         public function myEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)  
    7.         {  
    8.             super(type, bubbles, cancelable);  
    9.         }  
    10.           
    11.     }  
    12. }  

    其中type是事件名 bubbles是是否冒泡,cancelable是指示是否可以组织事件对象默认行为。

    对于不需要的参数可以去除,重写构造函数。如下:

    1. package com.event  
    2. {  
    3.     import flash.events.Event;  
    4.     public class tempEvent extends Event  
    5.     {  
    6.         public var parm1:int;  
    7.         public var parm2:String;  
    8.         public var parm3:Boolean;  
    9.         public function tempEvent(type:String, parm1:int,parm2:String,parm3:Boolean)  
    10.         {  
    11.             super(type);  
    12.             this.parm1=parm1;  
    13.             this.parm2=parm2;  
    14.             this.parm3=parm3;  
    15.         }  
    16.           
    17.     }  
    18. }  
     

    我自己定义了3个需要传递的参数,同时重写构造函数,这样一个自定义事件就完成了,是不是很简单。

    知道怎么定义, 让我们看看怎么使用:

    平时我们派发事件是用Event: dispatchEvent(new Event("type"));

    自定义事件继承了Event,同样的:dispatchEvent(new myEvent("type",1,"1",false)); 

    是不是也很简单

    那它能为我们带来什么方便呢?

    1。Event只能做到事件的派发与接收,不能做到灵活的数据传递,而自定义事件可以很容易的弥补这一不足。

    2。Event只能通过target和currentTarget得到事件对象,而有时候他们中没有一个是你想要的事件对象,那怎么办呢?自定义事 件可以很方便的解决这一问题,在自定义事件内定义属性o:Object,在事件派发的时候把想要得到的事件对象作为参数派发出去,这样你就可以在接受事件 的时候通过evt.o得到你想要的对象了。

    习惯使用自定义事件你会发现Flex的事件机制不再那么神秘。

    PS:

    当然尽管方便,但如无必要尽量使用Event,因为过多的自定义事件会让你的代码繁杂不堪。总之干什么都要适度

  • 相关阅读:
    The provided URI scheme 'http' is invalid; expected 'https'. Parameter name: via
    WCF传递Stream时,同时传递其它参数的问题
    DotNet NB 学习公众号
    军师旅团营连排班各有多少人
    OAuth 2.0学习
    人生三境界
    Mac OS安装Windows各版本时注意事项(2014年后的Mac机相信会有这些问题)
    C#中winform使用相对路径读取文件的方法
    Sql Server Report Service 的部署问题(Reporting Service 2014為什麼不需要IIS就可以運行)
    Reporting Services报表常用的URL参数
  • 原文地址:https://www.cnblogs.com/nianshi/p/1734565.html
Copyright © 2011-2022 走看看