我正在尝试覆盖 dispatchEvent(),但在 Flash IDE 中没有成功。查看有关该方法的Adobe 文档,它应该只是:
override function name()
正如Grant Skinner所证明的那样,这通常很容易执行:
override public function dispatchEvent(evt:Event):Boolean {
// code here
}
虽然彻底的 google 搜索将重复此语法在 Class 文件中成功使用,但在时间线代码中这样做,在 Flash IDE 中本机被证明是不可能的。第一个问题是使用public
抛出错误1114: The public attribute can only be used inside a package.
这很明显,但是在删除它后,运行以下命令(在新的 .fla 文件的第一帧上):
override function dispatchEvent(evt:Event):Boolean {
trace(evt.type);
return super.dispatchEvent(evt);
}
导致此错误:1024: Overriding a function that is not marked for override.
关于这个错误的文档意味着我没有在同名函数前面加上override
声明,但显然这是一个谬误,我对解决方案可能是什么感到惊讶。
需要明确的是,我们知道类文件可以工作,但这是一个无关紧要的问题。我们如何override function dispatchEvent()
在时间线代码中工作?