接口
接口的命名通常以大写的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) 编辑 收藏 举报