欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

[AS3]调度事件的古怪问题

墨初 知识笔记 75阅读

如下面代码字体http://www .Sina.com/{package快讯。展示雪碧;import闪电侠。事件。事件;import闪电侠。事件。事件调度程序;importpublic测试动作class雪碧{extendsprivate}调度员:事件调度员;nbsppublicfunction测试动作(){ _ dispatcher=new事件调度器();addEventListener(事件. ENTER_FRAME,_ _ ENTER FRAME);_调度员。添加事件侦听器(TestEvent .测试,_ _测试);}privatevar

"> e:TestEvent = new TestEvent(TestEvent.TEST);

        

        private function __enterFrame(event:Event):void

        {

            _dispatcher.dispatchEvent(e);

        }

        

        private function __test(event:TestEvent):void

        {

            trace(event);

        }

    }

}

 

此代码会报如下错误:

TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::Event@1967b21 转换为 TestEvent

    at flash.events::EventDispatcher/dispatchEventFunction()

    at flash.events::EventDispatcher/dispatchEvent()

    at TestAction/__enterFrame()[E:\Flash\TestAction\TestAction.as:23]

 

原因 变量 e在dispatch后再调用第二此dispatch就会报如下错误,由此可见,如果Event如果已经dispatch,调用_dispatcher.dispatchEvent(e)_dispatchernew 一个Event对象进行发布。

标签:
声明:无特别说明,转载请标明本文来源!