我使用的是原型继承,圆圈对象和Square对象都是从RootShape对象继承的。我正在使用EaselJS,并且不确定我所遇到的行为是否特定于原型继承、EaselJS库或两者的混合。
您可以在这里看到我的问题:http://fiddle.jshell.net/sdg9/UNY6E/
当我将事件侦听器(特别是pressmove侦听器)添加到圆圈或正方形原型中时,它会像我所期望的那样工作。所有圆圈对象都响应圆形原型侦听器,而所有方形对象对方形原型侦听器也是如此。
当我向RootShape原型添加事件侦听器时,循环和Square都继承了它,我遇到了一种奇怪的行为。Square事件触发循环侦听器,反之亦然。实际上,所有3个侦听器(在RootShape、Circle和Square上)都是被触发的。我不认为原型链下的物体会以这种方式发生冲突。有其他方法可以让eventListener在RootShape对象上使用,而不是让Square和圆环触发对方的侦听器吗?
发布于 2013-11-06 15:51:12
您定义的所有事件侦听器似乎都添加到您的RootShape原型中,而不是每个子原型。一个解决方案是在初始化每个子原型时添加事件侦听器。
https://stackoverflow.com/questions/19798691
复制相似问题