Closed SivaDCI closed 10 years ago
Too much code! Looks like you get wrong json from server. You should:
Hi Iavrton,
Thank you for your reply...
Hi Iavrton,
could you plz check with following value for json and load into container
I am getting the same error again
json value is
"{\"attrs\":{\"width\":747,\"height\":450},\"className\":\"Stage\",\"children\":[{\"attrs\":{},\"className\":\"Layer\",\"children\":[{\"attrs\":{\"id\":\"imgG\"},\"className\":\"Group\",\"children\":[{\"attrs\":{\"x\":10,\"y\":10,\"width\":747,\"height\":450},\"className\":\"Image\"}]}]},{\"attrs\":{},\"className\":\"Layer\",\"children\":[{\"attrs\":{\"x\":310,\"y\":68,\"draggable\":true,\"id\":\"dvg\"},\"className\":\"Kinetic.Group\",\"children\":[{\"attrs\":{\"x\":-31,\"y\":-18,\"width\":298,\"height\":192,\"fill\":\"#FF80AA\",\"stroke\":\"#29FF4C\",\"opacity\":0.2,\"name\":\"rect\",\"listening\":true},\"className\":\"Rect\"},{\"attrs\":{\"x\":267,\"y\":-18,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"topRight\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":-31,\"y\":174,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"bottomLeft\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":267,\"y\":174,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"bottomRight\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":-31,\"y\":-18,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"topLeft\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"}]},{\"attrs\":{\"x\":143,\"y\":117,\"draggable\":true,\"id\":\"cirG\"},\"className\":\"Kinetic.Group\",\"children\":[{\"attrs\":{\"radius\":56,\"fill\":\"#FF80AA\",\"stroke\":\"#29FF4C\",\"opacity\":0.3,\"strokeWidth\":1,\"name\":\"circle\"},\"className\":\"Circle\"},{\"attrs\":{\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"circleradius\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"circle\",\"visible\":false},\"className\":\"Circle\"}]}]},{\"attrs\":{},\"className\":\"Layer\",\"children\":[{\"attrs\":{\"x\":310,\"y\":68,\"draggable\":true,\"id\":\"dvg\"},\"className\":\"Kinetic.Group\",\"children\":[{\"attrs\":{\"x\":-31,\"y\":-18,\"width\":298,\"height\":192,\"fill\":\"#FF80AA\",\"stroke\":\"#29FF4C\",\"opacity\":0.2,\"name\":\"rect\",\"listening\":true},\"className\":\"Rect\"},{\"attrs\":{\"x\":267,\"y\":-18,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"topRight\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":-31,\"y\":174,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"bottomLeft\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":267,\"y\":174,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"bottomRight\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"},{\"attrs\":{\"x\":-31,\"y\":-18,\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"topLeft\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"rect\",\"visible\":false},\"className\":\"Circle\"}]},{\"attrs\":{\"x\":143,\"y\":117,\"draggable\":true,\"id\":\"cirG\"},\"className\":\"Kinetic.Group\",\"children\":[{\"attrs\":{\"radius\":56,\"fill\":\"#FF80AA\",\"stroke\":\"#29FF4C\",\"opacity\":0.3,\"strokeWidth\":1,\"name\":\"circle\"},\"className\":\"Circle\"},{\"attrs\":{\"stroke\":\"#666\",\"fill\":\"#ddd\",\"radius\":8,\"name\":\"circleradius\",\"opacity\":0.8,\"draggable\":true,\"dragOnTop\":false,\"id\":\"circle\",\"visible\":false},\"className\":\"Circle\"}]}]}]}"
I see "className" : "Kinetic.Group"
, but should be `"className" : "Group"
in your JSON. After fixing works fine: http://jsbin.com/dibas/1/edit
I got my Issue Fixed. Thank you lavrton for your valuable guidance.
BY Siva
Hi All, I am getting the following error when loading stage
TypeError: Kinetic[f] is not a constructor
I am using following kineticjs files kinetic-v5.0.1.js kinetic-v5.0.1.min.js
In following code I am going to save the drawn shapes value into json using stage.toJSON(); and then to database and again reload shapes in to stage using stage = Kinetic.Node.create(json, 'toImage'); when reload stage I got the error i was mentioned previously.
Here My code
var mY = 0; var cY = 0; var lx = 0; var ly = 0; var images = {}; var canvas; var group = new Array(); var drawingObject; var groupCount = 0; var layer = new Kinetic.Layer(); var stage; var draggedLine, initialX, initialY; var comment; var img; var base64String; var count = 0; var draggedLine, initialX, initialY; var radius = 25; var isDragging = false; var layerImage = new Kinetic.Layer(); function goBack() { window.history.back(); } $(document).ready(function () { $("#g_line").hide(); $("#g_rect").hide(); $("#g_circle").hide(); $("#g_text").hide(); $("#g_select").hide(); $("#g_delete").hide(); $("#g_clear").hide(); $("#g_save").hide(); stage = new Kinetic.Stage({ container: 'toImage', width: 747, height: 450 }); var imageObj = new Image();
}); function getMousePos(canvas, evt) { var rect = canvas.getBoundingClientRect(); return { x: evt.clientX - rect.left, y: evt.clientY - rect.top }; }
function newLine(mouseX, mouseY) { initialX = mouseX; initialY = mouseY; strokecolor = document.getElementById('strokecolor').value; var Line = new Kinetic.Line({ // x: initialX, //y: initialY,
}
function newCircle(mouseX, mouseY) { initialX = mouseX; initialY = mouseY; fillcolor = document.getElementById('fillcolor').value; // $("#txtColor").val(); strokecolor = document.getElementById('strokecolor').value; var circle = new Kinetic.Circle({ x: initialX, y: initialY, radius: 1, fill: "#" + fillcolor, stroke: "#" + strokecolor, opacity: 0.1, draggable: true
} function ViewImage(img) { var id = img.id;
}
function HideImage() { $('#filterview').css('display', 'none'); }
function ChangePixel() { var red = $("#chbred").prop('checked') ? true : false; var green = $("#chbgreen").prop('checked') ? true : false; var blue = $("#chbblue").prop('checked') ? true : false; var jsondata = "{'base64string':" + "'" + base64String + "'" + ",'red':" + red + ",'green':" + green + ",'blue':" + blue + "}"; $('#Loader').css('display', 'block'); jQuery.ajax({ url: "ConsultantReply.aspx/colorchange", type: "POST", data: jsondata, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { var result = data.d; imgbase64String = result; //imageObj.src = 'data:image/png;base64,' + objimage.image; $("#imgeye").attr("src", imgbase64String);
} function convert() { img = $('.kineticjs-content').find('canvas').get(0).toDataURL("image/png"); }
function divtoImage() { var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d");
}
function saveCanvas() { convert(); var imageData = stage.toJSON(); var imageDiv; $('#Loader').css('display', 'block'); //alert(img); stage.toDataURL({ callback: function (dataUrl) { / * here you can do anything you like with the data url. * In this tutorial we'll just open the url with the browser * so that you can see the result as an image /
} function select(node) { deselect(); if (node.parent.nodeType = 'Kinetic.Group') { var name = node.getName(); if (name == "text") { var children = node.parent.children; for (i = 1; i < children.length; i++) { if (children[i].getName() == 'sizeAnchor') { children[i].show(); } } } else { var children = node.parent.children; for (i = 1; i < children.length; i++) { if (children[i].getName() == 'topLeft' || children[i].getName() == 'topRight' || children[i].getName() == 'bottomRight' || children[i].getName() == 'bottomLeft' || children[i].getName() == 'start' || children[i].getName() == 'end' || children[i].getName() == 'circleradius') { children[i].show();
} function deselect() { var children = layer.children; for (i = 1; i < children.length; i++) { var grandChildren = children[i].children;
}
I hope someone will find what mistake i have done. I am looking for some help.
Thanks in Advance, Siva.