kineticjs扩展形状类导致未捕获的范围错误?

时间:2012-12-06 19:31:34

标签: javascript jquery kineticjs

这是我第一次发帖,我尽可能地回答这个问题。我空手而归。

之前我使用的是kineticJS的3.10.2。我已经更新了库以使用4.1.2,这是迄今为止的最新版本。我经历过几个错误,其中大部分已经解决了,但是,我已经走到了尽头。

这是我在js文件中遇到的错误。我不知道js在哪里发生。

Uncaught RangeError: Maximum call stack size exceeded
  Kinetic.Node.getParent
  Kinetic.Node.getStage
  Kinetic.Node.getStage
  .....

Kinetic.Node.getStage之后重复100次以上。

我有理由相信它与我如何修改Kinetic.Shape because of this article

的原型有关
function Datapoint() {
 this.uv = 0;
 this.royalblue = 0;
 this.royalblue2 = 0;
 this.presetId = 0;
 this.blue = 0;
 this.coolwhite = 0;
 this.green = 0;
 this.hyperred = 0;
 this.brightness = 0;
 this.clouds = 0;
 this.storms = 0;
 this.pointTime = new Date();
 this.id = 0;
 this.profileId = 0;
 this.intensity = 0;
 this.xCoord = 0;
 this.yCoord = 0;
 this.isStartNight = false;
 this.isStartDay = false;
 this.isNight = false
 this.isDay = false;
 this.isNatural = false;
}

//Modify the shape object
var DatapointObject = Kinetic.Shape;
DatapointObject.prototype.Datapoint;

然后,我尝试以标准方式创建一个点。

var point = Kinetic.Circle({<config object>});

我相信这可能是我错误的根源。如果是这样,我该如何解决?

如果这不是我的错误的来源,那么是否有人可以提供一些建议,以帮助我推断问题究竟在哪里?

1 个答案:

答案 0 :(得分:1)

事实证明,此错误也是由向自身添加图层引起的。像这样:

myLayer.add(myLayer);  //<--doesn't make any sense

这应该是

myStage.add(myLayer); //<-- fixed