接口

接口的命名通常以大写的I开头,后面跟一个有意义的名字。 接口只是负责定义一些接口的方法,其方法的具体实现是通过继承该接口的子类来实现的。 通过关键字implements来继承该接口。

接口只支持两种修饰词:internal public

一、定义接口形式如下: package 包名 { interface接口名 { function函数名(参数列表):数据类型 } }

定义接口的语法,通过直接继承EventDispatcher类,可让对象获得发送事件的能力,所有的显示对象由于间接继承了EventDispatcher类,都成了事件的发送者。EventDispatcher类的编写是有标准的,这个标准就是IeventDispacher.

二、接口继承 接口和接口之间是可以继承的

三、接口的实现

可以这么说,EventDispatcher之所以是事件发送者的祖宗,是因为它实现了IEventDispacher接口,同样想让某个类成为事件发送者,也可通过IEventDispatcher接口来实现。

在实现接口是,接口所规定的方法都要全部实现,如:

package
{
 import flash.events.IEventDispatcher
 import flash.events.EventDispatcher
 import flash.events.Event
 public class Sender implements IEventDispatcher
 {
  private var eventDispatcher:EventDispatcher=new EventDispatcher()
  public function addEventListener(type:String,listener:Function,useCapture:Boolean=false,priority:int=0,useWeakReference:Boolean=false):void
  {
   eventDispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference)
  }
  public function removeEventListener(type:String,listener:Function,useCapture:Boolean=false):void
  {
   eventDispatcher.removeEventListener(type,listener,useCapture)
  }
  public function dispatchEvent(event:Event):Boolean
  {
   return eventDispatcher.dispatchEvent(event)
  }
  public function hasEventListener(type:String):Boolean
  {
   return eventDispatcher.hasEventListener(type)
  }
  public function willTrigger(type:String):Boolean
  {
   return eventDispatcher..willTrigger(type)
  }

 }
}

最后在Fla文件测试代:

//创建实例

var sender:Sender=new Sender()
//定义事件侦听器

sender.addEventListener("testEvent",onTest)
//定义侦听器函数

function onTest(e:Event):void
{
 trace(e.type)
}

//发送事件,测试侦听器是否能收到。
sender.dispatchEvent(new Event("testEvent"));

因为类可能继承了其他类,而AS3.0中是不允许多继承的,所以要用IEventDispacher接口方法实现。

posted on 2012-10-04 22:39  God is a girl  阅读(156)  评论(0编辑  收藏  举报

导航