揭开AS程序的外纱(三) -- 一统事件侦听

 

      事件这个词很神秘,概念其实和现实生活上的事情很像。无非就是三个因素:谁发生了事情 (事件源)、发生了什么事情(事件响应)、该怎么处理这件事情(事件函数)。

       AS2和 AS3一个很大的差别,就在于事件的侦听上。AS2并没有一个完整的事件侦听体系,而这块到了AS3,终于有了很大的改变。
 
      在 AS3中,侦听事件的统一结构如下:
      function eventResponse(eventObject: EventType):void
      {
          // 你的程序
      }
      eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);
 
      eventSource:事件源
      EventType.EVENT_NAME:事件响应
      eventResponse:事件函数
      eventObject: EventType:事件参数
 
      这个结构还是蛮容易理解的,帮助文档上也能找到,我就不多说了。
 
      不过这里有朋友问了我一个看似很简单的问题, eventObject有什么用?怎么用?
      呃,这个问题怎么说呢,我举个简单的例子吧,假如你调用 TextEvent.TEXT_INPUT事件,当用户输入文本时,假设你要获得他具体输入的内容,那么就需要在函数内调用 eventObject.text属性。
      至于你问,我是怎么知道有这么一个text属性的,我只能说,去查看一下帮助文档吧。找到TextEvent类,下面列的公共属性和公共方法,都是可以这么用的。
 
      还有朋友问,怎么向事件函数传递参数呢?这个用法老实说,我是没用到过。但如果你真的要传参数,可以用下面的方法:
      eventSource.addEventListener(EventType.EVENT_NAME, function(e: Event) {eventResponse(e,parm); });    //parm:要传递的参数
 
      function eventResponse (eventObject: EventType, parm:parmtype):void {
          // 你的程序
      }
 
      本来下一篇想接着往下写,事件就写这么一篇。但这几天有朋友问了我好几个关于事件的问题,有一些事件的使用方法,也是有一定技巧性的。所以下一篇还是打算接着讲事件,讲一些常见事件的使用误区和使用技巧。

 

你可能感兴趣的:(事件,职场,AS,侦听,休闲)