Loving Coding & Visual Design
AS3中利用EventDispatcher定义自己的事件驱动类
flash.events.EventDispatcher已经给我们很好例子如果定义自己的事件驱动,那么我们在什么时候可以用得上呢?这里有一个例子:当我们装载XML的时候,XmlLoaded函数响应Event.COMPLETE事件,
但这还不够,仅仅是表明XML装载完成,如果要通知其他实例,我们还需要设定一个自定义的事件响应。
我以前的做法是:
设置一个变量isLoad来探测XML装载完成,如果isLoad为true,函数GetXml()返回XML字符串内容
现在可以改为:
先自定义FinishLoadingEvent类,然后在XmlLoaded函数中提交新的FinishLoadingEvent事件,
这样,XML装载完后,我们会得到自定义的事件,加上对这个事件的侦测,我们就可以轻易让其他实例获得XML字符串。
obj.addEventListener(Event.COMPLETE, XmlLoaded);
但这还不够,仅仅是表明XML装载完成,如果要通知其他实例,我们还需要设定一个自定义的事件响应。
我以前的做法是:
设置一个变量isLoad来探测XML装载完成,如果isLoad为true,函数GetXml()返回XML字符串内容
var test:LoadXml=new LoadXml(me,"zhaiduo.xml");
test.obj.addEventListener(Event.COMPLETE, XmlLoaded2);
function XmlLoaded2(event:Event):void{
trace(test.GetXml());
}
现在可以改为:
先自定义FinishLoadingEvent类,然后在XmlLoaded函数中提交新的FinishLoadingEvent事件,
dispatchEvent(new FinishLoadingEvent(FinishLoadingEvent.FINISH_EVENT, myXML.toXMLString()));
这样,XML装载完后,我们会得到自定义的事件,加上对这个事件的侦测,我们就可以轻易让其他实例获得XML字符串。
test.addEventListener(FinishLoadingEvent.FINISH_EVENT, XmlLoaded3);
function XmlLoaded3(event:FinishLoadingEvent):void{
trace(event.source);
}
最 近 文 章
- 博客重生 - Wed, 10 Dec 2008 02:35:00 +0000
- Google的免费午餐-Google Pack(软件精选) - Thu, 13 Nov 2008 09:38:55 +0000
- 自己动手装壁柜 - Wed, 05 Nov 2008 13:40:02 +0000
- 超级搞笑得土拨鼠视频 - Sun, 02 Nov 2008 17:44:38 +0000
- 我看”YouTube成功的秘诀” - Thu, 30 Oct 2008 17:46:56 +0000
- IE下Javascript错误:Unterminated string constant - Thu, 23 Oct 2008 17:48:25 +0000
- 科幻:Google模式终将取代国家机器 - Sun, 28 Sep 2008 17:50:02 +0000
- session_start(): Cannot send session cache limiter - Sun, 21 Sep 2008 17:51:33 +0000
- 网页变空白,刷新后又正常的问题 - Fri, 19 Sep 2008 17:52:44 +0000
- as3 FileReference.upload cookie bug in firefox - Fri, 12 Sep 2008 08:02:35 +0000