这是在运行时的报错,我们来看 看是一段什么样的代码导致他报错的
大家先找找这段代码错在哪,为什么导致这个错误,然后在看看后面说的错误原因
if(e.currentTarget is Sprite){
e.updateAfterEvent()
(e.currentTarget as Sprite).visible = false;
}
}
我们都知道AS3的代码,如果没有";"的情况下 也是可以编译、可以运行的。不过恰恰上述代码在e.updateAfterEvent()后因为没有";",导致他运行错误。因为这段代码在运行时,它是 被当成了这样在运行
总结1:大家明白了吗?从上面这个例子可以看出,养 成加";"号的习惯还是非常重要的。
2、TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::Event 转换为
MyEvent。
同样这也是一个运行错误,我们来看看是一段什么样的代码导致他报错的
大家也先找找他的错在哪
首先先看一下这个MyEvent类
{
import flash.events.Event;
public class MyEvent extends Event
{
public static
const MY:String = "my";
public function
MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type,
bubbles, cancelable);
}
}
}
private function myHandle(e:MyEvent):void{
spr.dispatchEvent(e);
}
private function myHandle(e:MyEvent):void{
trace(e);
}
在殿堂之路中,继承Event自定义事件举例中讲过这种问题的解决办法,但没有讲的很详细
很多新手在看高手的代码,都会看到自定义事件中都
会重构clone这个方法,但是自己尝试后发现,不重构clone也不会出现什么问题,以至于有些人在写项目赶时间时,也不太喜欢100%模仿高手的写
法,就会把重构clone这个看似很小,其实隐藏了秘密的东西给忽略掉。
在殿堂之路中有句原话:
总结2:看书要仔细,看高手的代码一定要学习透彻,而不是拿来主义,或者是模仿主义!
4135

被折叠的 条评论
为什么被折叠?



