1

这是我第一次发帖,我已经尽我所能来回答这个问题。我空手而归。

以前我使用的是 3.10.2 的 kineticJS。我已将库更新为使用截至今天最新的 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 因为这篇文章

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>});

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

如果这不是我的错误的根源,任何人都可以提供一些建议来帮助我推断出问题的确切位置吗?

4

1 回答 1

1

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

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

这应该是

myStage.add(myLayer); //<-- fixed
于 2012-12-07T14:17:33.507 回答