精通Flex 3.0――4.8.3 Event Listeners事件监听

  Event Listeners(事件监听)就是Flash Player利用一些functions(函数)来响应指定事件的处理。添加一个Event Listener需要两步过程。

1)为Flash Player创建一个函数或者类的方法来执行对事件的响应。

2)通过addEventListener()方法为目标对象注册监听方法。

事件监听函数可以定义在类的外部,也可以定义在内的内部。定义在类的内部可以看做类的一个方法来使用。

当监听函数定义在类外部,代码如下。

package com.topi.AS

{

         import flash.display.Sprite;

         import flash.events.MouseEvent;

         public class mySprite extends Sprite

         {

                   public function mySprite(){

                                     graphics.beginFill(0xFFFF00);

                                     //开始填充

                                     graphics.drawRect(0,0,100,100);

                                     //画矩形位置及其大小

                                     graphics.endFill();

                                     //填充结束

                                     addEventListener(MouseEvent.CLICK, showEventMessage);

                                     //注册监听方法

                   }

         }

}

          import flash.events.MouseEvent;

//创建监听函数

            function showEventMessage(event:MouseEvent):void{

                            trace("事件类型"+event.type);

                            trace("函数作用范围"+this);

         }

以上代码在调试模式下运行,通过控制台查看以下结果。

事件类型:-----click

函数作用范围:------[object global]

通过以上输出的调试信息,可以看到函数showEventMessage()可以处理的事件类型为click。而函数showEventMessage()被作为了一个全局的对象来调用。

当监听函数定义在类内部,代码如下。

package com.topi.AS

{

         import flash.display.Sprite;

         import flash.events.MouseEvent;

         public class mySprite extends Sprite

         {

                   public function mySprite(){

                                     graphics.beginFill(0xFFFF00);

                                     //开始填充

                                     graphics.drawRect(0,0,100,100);

                                     //画矩形位置及其大小

                                     graphics.endFill();

                                     //填充结束

                                     addEventListener(MouseEvent.CLICK, showEventMessage);

                                     //注册监听方法

                   }

                   //定义此类的一个内部方法

                   private function showEventMessage(event:MouseEvent):void{

                            trace("事件类型:-----"+event.type);

                            trace("函数作用范围:------"+this);

         }

         }

}

以上代码在调试模式下运行,通过控制台看见以下结果:

事件类型:-----click

函数作用范围:------[object mySprite]

通过以上输出的调试信息,可以看到函数showEventMessage()可以处理的事件类型为click。而这个时候函数showEventMessage()被作为了mySprite对象的一个内部方法来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值