Kinetic.DragItem = function(config){ Kinetic.Group.call(this, config); this.data = config.data; this.createItem(); this.oriY = config.y; this.oriX = config.x; if (this.oriX == undefined){ this.oriX = 0; } if (this.oriY == undefined){ this.oriY = 0; } } Kinetic.DragItem.prototype = { createItem: function(){ if (this.data.type == 'image'){ var mediaData = new Object(); mediaData.type = 'image'; mediaData.parameters = new Object(); mediaData.mediaFile = new Object(); mediaData.mediaFile.width = this.data.sizeX; mediaData.mediaFile.height = this.data.sizeY; mediaData.mediaFile.path = this.data.value.replace('media/image', ''); this.label = new Kinetic.Media({ 'mediaData': mediaData, 'parent': this }); this.border = new Kinetic.Rect({ 'x': 2, 'y': 2, 'width': this.data.sizeX - 4, 'height': this.data.sizeY - 4, 'stroke': '#0076bc', 'strokeWidth': 4 }); this.add(this.border); var border = this.border; var prevOnload = this.label.imageObj.onload; this.label.imageObj.onload = function(){ prevOnload(); border.moveToTop(); } } else { this.label = new Kinetic.BackgroundText({ 'x': 0, 'y': 0, 'text': this.data.value, 'fontSize': 11, 'fontFamily': 'Arial', 'textFill': '#FFFFFF', 'fill': '#0076bc', 'padding': 8, 'lineHeight': 1 }); this.add(this.label); } }, setCorrect: function(){ if (this.data.type == 'image'){ this.border.setStroke('#319d1c'); } else { this.label.setFill('#319d1c'); } }, setWrong: function(){ if (this.data.type == 'image'){ this.border.setStroke('#d50000'); } else { this.label.setFill('#d50000'); } }, getWidth: function(){ if (this.data.type == 'image'){ return this.data.sizeX; }else{ return this.label.getWidth(); } }, getHeight: function(){ if (this.data.type == 'image'){ return this.data.sizeY; }else{ return this.label.getHeight(); } } } Kinetic.Util.extend(Kinetic.DragItem, Kinetic.Group);