2013-05-02 1 views
0
JSON

Я всегда получал ошибку:Kineticjs нагрузка холст

"TypeError: Kinetic [тип] не является конструктором"
"ReferenceError: ссылка на неопределенную obj.nodeType недвижимости"

, когда я пытаюсь загрузите один json.

json = stage.toJSON(); 

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

метод _createNode из Kineticjs 4.3.3

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

ответ

0

'polygon1' Это просто одно имя ... изменение !!!! Я беру ваш код и место для запуска и продолжаю с той же ошибкой! Когда я печатаю 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'); 

 Смежные вопросы

  • Нет связанных вопросов^_^