0

私はいつもエラーを受け取りました:

「TypeError: Kinetic[type] はコンストラクターではありません」
「ReferenceError: 未定義のプロパティ obj.nodeType への参照」

1つのjsonをロードしようとすると。

json = stage.toJSON();

stage = Kinetic.Node.create(json, 'myCanvas');

Kineticjs 4.3.3 のメソッド _createNode

var no = new Kinetic[type](obj.attrs);

私のキャンバスには単純なグループがあります

var circle1 = new Kinetic.Circle({
                x: 40,
                y: 50,
                radius: 42,
                fill: 'white',
                stroke: 'black',
                strokeWidth: 1,
                draggable: false
            });

var polygon1Tab1 = new Kinetic.RegularPolygon({
                        x: 40,
                        y: 50,
                        radius: 27,
                        sides: 4,
                        stroke: 'black',
                        strokeWidth: 4,
                        draggable: false
                  });
                  polygon1Tab1.rotateDeg(45);


var group1 = new Kinetic.Group({
                                  draggable: true,
                              });

group1.add(circle1.clone());
group1.add(polygon1.clone());
4

2 に答える 2

0

ここで「polygon1」とは何ですか?

group1.add(polygon1.clone());

この例を作成しました。すべてうまくフォークします: http://jsfiddle.net/lavrton/N3UPX/

于 2013-05-05T04:38:02.427 に答える
0

' polygon1 ' たった 1 つの名前です ... 変更!!!! 私はあなたのコードと場所を実行して、同じエラーを続けます! jsonを印刷すると、エラーがあることに気付きました!

彼はこれを "children": "[]"入れて、私が自分のストリングをコピーして置く場合、この固定されたストリングを通常のホイールに修正した場合、括弧内に引用符を付けるべきではありません!! エラーを取り除く方法を作りました....今、私はエラーが発生しています

SyntaxError: JSON.parse: expected property name or '}'


var json = polygonLayer.toJSON();
json = json.replace('"children":"', '"children":');
json = json.substring(0, json.length-2) + json.substring(json.length-1, json.length);

一方、同じ固定文字列を使用すると機能します!

バージョン 4.3.3 を使用しています

この作品

var json = '{"attrs":{"clearBeforeDraw":true,"visible":true,"listening":true,"opacity":1,"x":0,"y":0,"scale":{"x":1,"y":1},"rotation":0,"offset":{"x":0,"y":0},"draggable":false,"dragOnTop":true},"nodeType":"Layer","children":[{\"attrs\": {\"width\": 600, \"height\": 400, \"cornerRadius\": 0, \"fillEnabled\": true, \"strokeEnabled\": true, \"shadowEnabled\": true, \"dashArrayEnabled\": true, \"fillPriority\": \"color\", \"visible\": true, \"listening\": true, \"opacity\": 1, \"x\": 0, \"y\": 0, \"scale\": {\"x\": 1, \"y\": 1}, \"rotation\": 0, \"offset\": {\"x\": 0, \"y\": 0}, \"draggable\": false, \"dragOnTop\": true, \"fill\": \"white\"}, \"nodeType\": \"Shape\", \"shapeType\": \"Rect\"}]}';
layer = Kinetic.Node.create(json, 'canvas');

しかし、これはうまくいきません

var json = layer.toJSON();
layer = Kinetic.Node.create(json, 'canvas');
于 2013-05-07T13:11:35.340 に答える