AS3.0的 带参数 自定义事件

转载 2013年12月05日 14:29:47
as3.0自定义类源代码转自天地会兄弟(jony_mc ),由于目前正要用到自定义事件类,所以在天地会看到了,特定转过来以备后用,没经过jony_mc兄弟允许还请凉解。
很多朋友对自定义事件概念模糊,思路不够清晰,下面我用一个很简单的实例来说明如何自定义一个具有两个事件类型事件。下面这个例子有四个类文件,一个是男孩类、一个是女孩类、一个是自定义事件类、一个是文档类。我们的目标是,男孩发出不同的事件,女孩做出不同的反映。

以下类文件和主文档放在同一目录下。

package {

    import flash.events.Event;

    //导入事件类

    public class CustomEvent extends Event {

        //声明自定义事件扩展自事件类成为其子类

        public static  const SENDFLOWER:String="sendFlower";

        //声明静态常量作为事件类型1

        public static  const SENDCAR:String="sendCar";

        //声明静态常量作为事件类型2

        public var info:String;

        //声明变量储存事件信息,这也是我们用自定义事件的主要原因,可以用他来

        //携带额外的信息

        public function CustomEvent(type:String,inf) {

            super(type);

            //调用父类构造函数并设置传入的参数作为事件类型

            info=inf;

            //将传入的参数2存入info

        }

    }

}

//2、男孩类:
package {

    import flash.events.EventDispatcher;

    //导入事件发送者类

    import flash.events.Event;

    //导入事件类

    public class Boy extends EventDispatcher {

        //声明男孩类扩展自事件发送者类,成为其子类

        public function sendFlower() {

            //声明公开送花方法;

            var info:String="玫瑰花";

            //声明局部变量设置发送信息

            var events=new CustomEvent(CustomEvent.SENDFLOWER,info);

            //声明一个新的自定义事件类的实例,并设置类型为第一种、

            //将发送信息存入事件

            this.dispatchEvent(events);

            //发送该事件

        }

        public function sendCar() {

            //声明公开送车方法;

            var info:String="百万跑车";

            //声明局部变量设置发送信息

            var events=new CustomEvent(CustomEvent.SENDCAR,info);

            //声明一个新的自定义事件类的实例,并设置类型为第二种、

            //将发送信息存入事件

            this.dispatchEvent(events);

            //发送该事件

        }

    }

}

//3、女孩类:
package {
    public class Girl {
        public function replay(info):void {
            trace(info);
        }
        //声明公开方法,做出反应
    }
}
//4、文档类:
package {

    import flash.display.Sprite;

    //导入Sprite类

    public class Documents extends Sprite {

        //声明文档类扩展自sprite类

        private var _boy:Boy;

        //声明私有属性为男孩类型

        private var _girl:Girl;

        //声明私有属性为女孩类型

        public function Documents() {

            //构造函数

            _boy=new Boy;

            //创建男孩实例

            _girl=new Girl;

            //创建女孩实例

            _boy.addEventListener(CustomEvent.SENDFLOWER,_hand);

            //为男孩增加类型为CustomEvent.SENDFLOWER的事件监听

            _boy.addEventListener(CustomEvent.SENDCAR,_hand);

            //为男孩增加类型为CustomEvent.SENDCAR的事件监听

            _boy.sendCar();

            //调用男孩的送车的方法。你可以再试着调用男孩的sendFlower

            //方法试试,看结果有什么不同

        }

        private function _hand(E:CustomEvent):void {

            //声明事件处理器

            _girl.replay("我收到一位帅哥送我的:"+E.info);

            //调用女孩的replay方法。

        }

    }

}
希望各位不懂自定义事件的朋友看了之后会有所启发,总之,事件发送没反应大部分原因是发送者和接受者不在一个反应区域内。基本上如果是自定义类要发送事 件,那么监听者也是他自己。如果是显示对象发送自定义事件,可以让他自己监听也可以让他的父级显示容器监听,但如果是后者则必须将冒泡参数设为true, 在本例中就是修改自定义事件类文件中的
super(type); 
这一行为super(type,true);

AS3.0自定义事件

下面给大家编个故事,有助于大家能更好更形象地去理解AS3.0自定义事件!  一、第一步   首先忘记你学到的任何关于事件类的知识,不知道有这么一回事,然后只知道FLASH有个内置类,名叫EVENT...
  • u011208969
  • u011208969
  • 2013年07月10日 12:02
  • 1044

【PB】如何触发带参数的自定义事件?

 【PB】如何触发带参数的自定义事件? 分类: pb知识库 2012-08-22 12:31 1166人阅读 评论(0) 收藏 举报 用代码触发事件时,可以使用函数tri...
  • tlammon
  • tlammon
  • 2015年07月10日 13:46
  • 811

AS3 自定义事件

结构:1.自定义事件(Event类或其子类实例)2.事件发送者(必须EventDispatcher类或其子类实例)3.事件监听器(接收事件后执行特定处理代码)监听事件:1.建立监听器,监听器可为独立的...
  • lulu_jiang
  • lulu_jiang
  • 2011年04月12日 20:07
  • 3701

PB如何触发带参数的自定义事件

PB如何触发带参数的自定义事件 2012-04-27 10:25:55 分类: 数据库开发技术     用代码触发事件时,可以使用函数trig...
  • anyqu
  • anyqu
  • 2014年09月26日 20:36
  • 1255

PyQt4中自定义事件

PyQt4中自定义鼠标悬浮事件PyQt4中自定义鼠标悬浮事件 重写事件过滤器 重写鼠标移动事件重写事件过滤器 通过在全局或者相应的widget重写事件过滤器,并对事件进行判断来重新定义鼠标移动事件...
  • qq_35221523
  • qq_35221523
  • 2017年10月31日 14:24
  • 112

as3.0自定义事件类源代码(转)

as3.0自定义类源代码转自天地会兄弟(jony_mc ),由于目前正要用到自定义事件类,所以在天地会看到了,特定转过来以备后用,没经过jony_mc兄弟允许还请凉解。很多朋友对自定义事件概念模糊,思...
  • ctbinzi
  • ctbinzi
  • 2009年09月28日 17:02
  • 7018

自定义事件(自定义参数,带参数实现)

自定义事件(自定义参数,带参数实现),看一下代码: class Program { static void Main(string[] args) { ...
  • zhouyunyu22
  • zhouyunyu22
  • 2015年08月26日 17:43
  • 192

javascript自定义事件应用实例

js自定义事件 实现观察者模式,模块之间完全通过事件协作和传递信息。写了一个典型的观察者应用和一个游戏的框架代码,来演示自定义事件的使用...
  • ruangong1203
  • ruangong1203
  • 2016年09月08日 19:45
  • 2275

jquery 自定义事件绑定与触发 $.one与$.bind效果对比实例

New Document
  • kinglo
  • kinglo
  • 2011年02月21日 14:31
  • 6170

jquery 常用事件添加方式和自定义事件

$(function(){ for(var i=0; i
  • qwkxq
  • qwkxq
  • 2017年01月08日 18:16
  • 768
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AS3.0的 带参数 自定义事件
举报原因:
原因补充:

(最多只允许输入30个字)