konva/src/Shape.js

1407 lines
42 KiB
JavaScript
Raw Normal View History

(function() {
2013-08-10 15:58:53 +08:00
var HAS_SHADOW = 'hasShadow';
function _fillFunc(context) {
context.fill();
}
function _strokeFunc(context) {
context.stroke();
}
function _fillFuncHit(context) {
context.fill();
2013-02-12 14:55:24 +08:00
}
function _strokeFuncHit(context) {
context.stroke();
2013-02-12 14:55:24 +08:00
}
2012-04-29 12:12:01 +08:00
function _clearHasShadowCache() {
this._clearCache(HAS_SHADOW);
}
Kinetic.Util.addMethods(Kinetic.Shape, {
__init: function(config) {
this.nodeType = 'Shape';
this._fillFunc = _fillFunc;
this._strokeFunc = _strokeFunc;
2013-02-12 14:55:24 +08:00
this._fillFuncHit = _fillFuncHit;
this._strokeFuncHit = _strokeFuncHit;
// set colorKey
var shapes = Kinetic.shapes;
var key;
while(true) {
key = Kinetic.Util.getRandomColor();
if(key && !( key in shapes)) {
break;
}
}
this.colorKey = key;
shapes[key] = this;
// call super constructor
Kinetic.Node.call(this, config);
2014-03-03 19:24:00 +08:00
this.on('shadowColorChange.kinetic shadowBlurChange.kinetic shadowOffsetChange.kinetic shadowOpacityChange.kinetic shadowEnabledChange.kinetic', _clearHasShadowCache);
},
hasChildren: function() {
return false;
},
getChildren: function() {
return [];
},
/**
* get canvas context tied to the layer
* @method
* @memberof Kinetic.Shape.prototype
2013-12-13 13:41:41 +08:00
* @returns {Kinetic.Context}
*/
getContext: function() {
return this.getLayer().getContext();
},
/**
2012-12-17 04:56:30 +08:00
* get canvas renderer tied to the layer. Note that this returns a canvas renderer, not a canvas element
* @method
* @memberof Kinetic.Shape.prototype
2013-12-13 13:41:41 +08:00
* @returns {Kinetic.Canvas}
*/
getCanvas: function() {
return this.getLayer().getCanvas();
},
/**
* returns whether or not a shadow will be rendered
* @method
* @memberof Kinetic.Shape.prototype
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
*/
hasShadow: function() {
2014-02-27 08:49:18 +08:00
return this._getCache(HAS_SHADOW, this._hasShadow);
2013-08-10 15:58:53 +08:00
},
_hasShadow: function() {
return this.getShadowEnabled() && (this.getShadowOpacity() !== 0 && !!(this.getShadowColor() || this.getShadowBlur() || this.getShadowOffsetX() || this.getShadowOffsetY()));
},
/**
* returns whether or not the shape will be filled
* @method
* @memberof Kinetic.Shape.prototype
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
*/
hasFill: function() {
2013-05-06 14:07:55 +08:00
return !!(this.getFill() || this.getFillPatternImage() || this.getFillLinearGradientColorStops() || this.getFillRadialGradientColorStops());
},
/**
* returns whether or not the shape will be stroked
* @method
* @memberof Kinetic.Shape.prototype
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
*/
hasStroke: function() {
return !!(this.stroke() || this.strokeRed() || this.strokeGreen() || this.strokeBlue());
},
/**
* determines if point is in the shape, regardless if other shapes are on top of it. Note: because
* this method clears a temporary canvas and then redraws the shape, it performs very poorly if executed many times
* consecutively. Please use the {@link Kinetic.Stage#getIntersection} method if at all possible
* because it performs much better
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} point
* @param {Number} point.x
* @param {Number} point.y
* @returns {Boolean}
*/
intersects: function(point) {
var stage = this.getStage(),
bufferHitCanvas = stage.bufferHitCanvas,
p;
bufferHitCanvas.getContext().clear();
this.drawScene(bufferHitCanvas);
p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;
return p[3] > 0;
},
// extends Node.prototype.destroy
destroy: function() {
Kinetic.Node.prototype.destroy.call(this);
delete Kinetic.shapes[this.colorKey];
},
_useBufferCanvas: function() {
2014-03-07 18:20:03 +08:00
return (this.hasShadow() || this.getAbsoluteOpacity() !== 1) && this.hasFill() && this.hasStroke() && this.getStage();
},
drawScene: function(can, top) {
var layer = this.getLayer(),
canvas = can || layer.getCanvas(),
context = canvas.getContext(),
cachedCanvas = this._cache.canvas,
drawFunc = this.sceneFunc(),
hasShadow = this.hasShadow(),
stage, bufferCanvas, bufferContext;
2014-02-27 08:49:18 +08:00
if(this.isVisible()) {
if (cachedCanvas) {
this._drawCachedSceneCanvas(context);
}
else if (drawFunc) {
context.save();
// if buffer canvas is needed
if (this._useBufferCanvas()) {
stage = this.getStage();
bufferCanvas = stage.bufferCanvas;
bufferContext = bufferCanvas.getContext();
bufferContext.clear();
bufferContext.save();
bufferContext._applyLineJoin(this);
// layer might be undefined if we are using cache before adding to layer
if (layer) {
layer._applyTransform(this, bufferContext, top);
2014-05-11 20:22:30 +08:00
} else {
var m = this.getAbsoluteTransform(top).getMatrix();
context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
}
drawFunc.call(this, bufferContext);
bufferContext.restore();
2014-10-02 22:41:51 +08:00
if (hasShadow && !canvas.hitCanvas) {
context.save();
context._applyShadow(this);
2014-02-27 08:49:18 +08:00
context.drawImage(bufferCanvas._canvas, 0, 0);
context.restore();
}
context._applyOpacity(this);
context.drawImage(bufferCanvas._canvas, 0, 0);
}
// if buffer canvas is not needed
else {
context._applyLineJoin(this);
// layer might be undefined if we are using cache before adding to layer
if (layer) {
layer._applyTransform(this, context, top);
2014-05-11 20:22:30 +08:00
} else {
var o = this.getAbsoluteTransform(top).getMatrix();
context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
}
2014-10-02 22:41:51 +08:00
if (hasShadow && !canvas.hitCanvas) {
context.save();
context._applyShadow(this);
drawFunc.call(this, context);
context.restore();
2014-02-27 08:49:18 +08:00
}
context._applyOpacity(this);
drawFunc.call(this, context);
2014-02-27 08:49:18 +08:00
}
context.restore();
}
}
return this;
},
drawHit: function(can, top) {
var layer = this.getLayer(),
canvas = can || layer.hitCanvas,
context = canvas.getContext(),
drawFunc = this.hitFunc() || this.sceneFunc(),
cachedCanvas = this._cache.canvas,
cachedHitCanvas = cachedCanvas && cachedCanvas.hit;
if(this.shouldDrawHit(canvas)) {
if (layer) {
2014-05-17 21:10:49 +08:00
layer.clearHitCache();
}
if (cachedHitCanvas) {
this._drawCachedHitCanvas(context);
}
else if (drawFunc) {
context.save();
context._applyLineJoin(this);
if (layer) {
layer._applyTransform(this, context, top);
2014-05-11 20:22:30 +08:00
} else {
var m = this.getAbsoluteTransform(top).getMatrix();
context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
}
2014-02-27 08:49:18 +08:00
drawFunc.call(this, context);
context.restore();
}
}
return this;
},
/**
* draw hit graph using the cached scene canvas
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} alphaThreshold alpha channel threshold that determines whether or not
* a pixel should be drawn onto the hit graph. Must be a value between 0 and 255.
* The default is 0
* @returns {Kinetic.Shape}
* @example
* shape.cache();
* shape.drawHitFromCache();
*/
drawHitFromCache: function(alphaThreshold) {
var threshold = alphaThreshold || 0,
cachedCanvas = this._cache.canvas,
sceneCanvas = this._getCachedSceneCanvas(),
sceneContext = sceneCanvas.getContext(),
hitCanvas = cachedCanvas.hit,
hitContext = hitCanvas.getContext(),
width = sceneCanvas.getWidth(),
height = sceneCanvas.getHeight(),
sceneImageData, sceneData, hitImageData, hitData, len, rgbColorKey, i, alpha;
hitContext.clear();
try {
sceneImageData = sceneContext.getImageData(0, 0, width, height);
sceneData = sceneImageData.data;
hitImageData = hitContext.getImageData(0, 0, width, height);
hitData = hitImageData.data;
len = sceneData.length;
rgbColorKey = Kinetic.Util._hexToRgb(this.colorKey);
// replace non transparent pixels with color key
for(i = 0; i < len; i += 4) {
alpha = sceneData[i + 3];
if (alpha > threshold) {
hitData[i] = rgbColorKey.r;
hitData[i + 1] = rgbColorKey.g;
hitData[i + 2] = rgbColorKey.b;
hitData[i + 3] = 255;
}
}
hitContext.putImageData(hitImageData, 0, 0);
}
catch(e) {
Kinetic.Util.warn('Unable to draw hit graph from cached scene canvas. ' + e.message);
}
return this;
}
});
Kinetic.Util.extend(Kinetic.Shape, Kinetic.Node);
// add getters and setters
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'stroke');
/**
* get/set stroke color
* @name stroke
* @method
* @memberof Kinetic.Shape.prototype
2013-05-08 01:19:54 +08:00
* @param {String} color
* @returns {String}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke color
* var stroke = shape.stroke();
*
2014-04-04 11:17:09 +08:00
* // set stroke color with color string
* shape.stroke('green');
*
2014-04-04 11:17:09 +08:00
* // set stroke color with hex
* shape.stroke('#00ff00');
*
2014-04-04 11:17:09 +08:00
* // set stroke color with rgb
* shape.stroke('rgb(0,255,0)');
*
2014-04-04 11:17:09 +08:00
* // set stroke color with rgba and make it 50% opaque
* shape.stroke('rgba(0,255,0,0.5');
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeRed', 0, Kinetic.Validators.RGBComponent);
/**
* get/set stroke red component
* @name strokeRed
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} red
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke red component
* var strokeRed = shape.strokeRed();
*
2014-04-04 11:17:09 +08:00
* // set stroke red component
* shape.strokeRed(0);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeGreen', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set stroke green component
* @name strokeGreen
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} green
2013-12-13 13:41:41 +08:00
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke green component
* var strokeGreen = shape.strokeGreen();
*
2014-04-04 11:17:09 +08:00
* // set stroke green component
* shape.strokeGreen(255);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeBlue', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set stroke blue component
* @name strokeBlue
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} blue
2013-12-13 13:41:41 +08:00
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke blue component
* var strokeBlue = shape.strokeBlue();
*
2014-04-04 11:17:09 +08:00
* // set stroke blue component
* shape.strokeBlue(0);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeAlpha', 1, Kinetic.Validators.alphaComponent);
/**
* get/set stroke alpha component. Alpha is a real number between 0 and 1. The default
* is 1.
* @name strokeAlpha
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} alpha
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke alpha component
* var strokeAlpha = shape.strokeAlpha();
*
2014-04-04 11:17:09 +08:00
* // set stroke alpha component
* shape.strokeAlpha(0.5);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeWidth', 2);
/**
* get/set stroke width
* @name strokeWidth
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} strokeWidth
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get stroke width
* var strokeWidth = shape.strokeWidth();
*
2014-04-04 11:17:09 +08:00
* // set stroke width
* shape.strokeWidth();
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'lineJoin');
/**
* get/set line join. Can be miter, round, or bevel. The
* default is miter
* @name lineJoin
* @method
* @memberof Kinetic.Shape.prototype
* @param {String} lineJoin
2013-12-13 13:41:41 +08:00
* @returns {String}
* @example
2014-04-04 11:17:09 +08:00
* // get line join
* var lineJoin = shape.lineJoin();
*
2014-04-04 11:17:09 +08:00
* // set line join
* shape.lineJoin('round');
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'lineCap');
2013-01-03 13:35:51 +08:00
/**
* get/set line cap. Can be butt, round, or square
* @name lineCap
* @method
* @memberof Kinetic.Shape.prototype
2013-01-03 13:35:51 +08:00
* @param {String} lineCap
2013-12-13 13:41:41 +08:00
* @returns {String}
* @example
2014-04-04 11:17:09 +08:00
* // get line cap
* var lineCap = shape.lineCap();
*
2014-04-04 11:17:09 +08:00
* // set line cap
* shape.lineCap('round');
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'sceneFunc');
/**
* get/set scene draw function
* @name sceneFunc
* @method
* @memberof Kinetic.Shape.prototype
* @param {Function} drawFunc drawing function
2013-12-13 13:41:41 +08:00
* @returns {Function}
* @example
2014-04-04 11:17:09 +08:00
* // get scene draw function
* var sceneFunc = shape.sceneFunc();
*
* // set scene draw function
* shape.sceneFunc(function(context) {
* context.beginPath();
* context.rect(0, 0, this.width(), this.height());
* context.closePath();
* context.fillStrokeShape(this);
* });
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'hitFunc');
/**
* get/set hit draw function
* @name hitFunc
* @method
* @memberof Kinetic.Shape.prototype
* @param {Function} drawFunc drawing function
2013-12-13 13:41:41 +08:00
* @returns {Function}
* @example
2014-04-04 11:17:09 +08:00
* // get hit draw function
* var hitFunc = shape.hitFunc();
*
* // set hit draw function
* shape.hitFunc(function(context) {
* context.beginPath();
* context.rect(0, 0, this.width(), this.height());
* context.closePath();
* context.fillStrokeShape(this);
* });
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'dash');
/**
* get/set dash array for stroke.
* @name dash
* @method
* @memberof Kinetic.Shape.prototype
* @param {Array} dash
* @returns {Array}
2013-12-13 13:41:41 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // apply dashed stroke that is 10px long and 5 pixels apart
* line.dash([10, 5]);
2013-12-13 13:41:41 +08:00
*
2014-04-04 11:17:09 +08:00
* // apply dashed stroke that is made up of alternating dashed
* // lines that are 10px long and 20px apart, and dots that have
* // a radius of 5px and are 20px apart
* line.dash([10, 20, 0.001, 20]);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowColor');
/**
* get/set shadow color
* @name shadowColor
* @method
* @memberof Kinetic.Shape.prototype
* @param {String} color
* @returns {String}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow color
* var shadow = shape.shadowColor();
*
2014-04-04 11:17:09 +08:00
* // set shadow color with color string
* shape.shadowColor('green');
*
2014-04-04 11:17:09 +08:00
* // set shadow color with hex
* shape.shadowColor('#00ff00');
*
2014-04-04 11:17:09 +08:00
* // set shadow color with rgb
* shape.shadowColor('rgb(0,255,0)');
*
2014-04-04 11:17:09 +08:00
* // set shadow color with rgba and make it 50% opaque
* shape.shadowColor('rgba(0,255,0,0.5');
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowRed', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set shadow red component
* @name shadowRed
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} red
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow red component
* var shadowRed = shape.shadowRed();
*
2014-04-04 11:17:09 +08:00
* // set shadow red component
* shape.shadowRed(0);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowGreen', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set shadow green component
* @name shadowGreen
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} green
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow green component
* var shadowGreen = shape.shadowGreen();
*
2014-04-04 11:17:09 +08:00
* // set shadow green component
* shape.shadowGreen(255);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowBlue', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set shadow blue component
* @name shadowBlue
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} blue
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow blue component
* var shadowBlue = shape.shadowBlue();
*
2014-04-04 11:17:09 +08:00
* // set shadow blue component
* shape.shadowBlue(0);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowAlpha', 1, Kinetic.Validators.alphaComponent);
/**
* get/set shadow alpha component. Alpha is a real number between 0 and 1. The default
* is 1.
* @name shadowAlpha
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} alpha
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow alpha component
* var shadowAlpha = shape.shadowAlpha();
*
2014-04-04 11:17:09 +08:00
* // set shadow alpha component
* shape.shadowAlpha(0.5);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowBlur');
/**
* get/set shadow blur
* @name shadowBlur
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} blur
2013-12-13 13:41:41 +08:00
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow blur
* var shadowBlur = shape.shadowBlur();
*
2014-04-04 11:17:09 +08:00
* // set shadow blur
* shape.shadowBlur(10);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowOpacity');
/**
* get/set shadow opacity. must be a value between 0 and 1
* @name shadowOpacity
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} opacity
2013-12-13 13:41:41 +08:00
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow opacity
* var shadowOpacity = shape.shadowOpacity();
*
2014-04-04 11:17:09 +08:00
* // set shadow opacity
* shape.shadowOpacity(0.5);
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'shadowOffset', ['x', 'y']);
/**
* get/set shadow offset
* @name shadowOffset
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} offset
* @param {Number} offset.x
* @param {Number} offset.y
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow offset
* var shadowOffset = shape.shadowOffset();
*
2014-04-04 11:17:09 +08:00
* // set shadow offset
* shape.shadowOffset({
* x: 20
* y: 10
* });
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowOffsetX', 0);
/**
* get/set shadow offset x
* @name shadowOffsetX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
2013-12-13 13:41:41 +08:00
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow offset x
* var shadowOffsetX = shape.shadowOffsetX();
*
2014-04-04 11:17:09 +08:00
* // set shadow offset x
* shape.shadowOffsetX(5);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowOffsetY', 0);
/**
* get/set shadow offset y
* @name shadowOffsetY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
2013-12-13 13:41:41 +08:00
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get shadow offset y
* var shadowOffsetY = shape.shadowOffsetY();
*
2014-04-04 11:17:09 +08:00
* // set shadow offset y
* shape.shadowOffsetY(5);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternImage');
/**
* get/set fill pattern image
* @name fillPatternImage
* @method
* @memberof Kinetic.Shape.prototype
2013-01-03 13:35:51 +08:00
* @param {Image} image object
2013-12-13 13:41:41 +08:00
* @returns {Image}
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern image
* var fillPatternImage = shape.fillPatternImage();
*
* // set fill pattern image
* var imageObj = new Image();
* imageObj.onload = function() {
* shape.fillPatternImage(imageObj);
* };
* imageObj.src = 'path/to/image/jpg';
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fill');
2013-01-03 13:35:51 +08:00
/**
* get/set fill color
* @name fill
* @method
* @memberof Kinetic.Shape.prototype
* @param {String} color
* @returns {String}
* @example
2014-04-04 11:17:09 +08:00
* // get fill color
* var fill = shape.fill();
*
2014-04-04 11:17:09 +08:00
* // set fill color with color string
* shape.fill('green');
*
2014-04-04 11:17:09 +08:00
* // set fill color with hex
* shape.fill('#00ff00');
*
2014-04-04 11:17:09 +08:00
* // set fill color with rgb
* shape.fill('rgb(0,255,0)');
*
2014-04-04 11:17:09 +08:00
* // set fill color with rgba and make it 50% opaque
* shape.fill('rgba(0,255,0,0.5');
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRed', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set fill red component
* @name fillRed
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} red
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get fill red component
* var fillRed = shape.fillRed();
*
2014-04-04 11:17:09 +08:00
* // set fill red component
* shape.fillRed(0);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillGreen', 0, Kinetic.Validators.RGBComponent);
2013-01-03 13:35:51 +08:00
/**
* get/set fill green component
* @name fillGreen
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} green
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get fill green component
* var fillGreen = shape.fillGreen();
*
2014-04-04 11:17:09 +08:00
* // set fill green component
* shape.fillGreen(255);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillBlue', 0, Kinetic.Validators.RGBComponent);
2013-05-08 01:19:54 +08:00
/**
* get/set fill blue component
* @name fillBlue
* @method
* @memberof Kinetic.Shape.prototype
* @param {Integer} blue
* @returns {Integer}
* @example
2014-04-04 11:17:09 +08:00
* // get fill blue component
* var fillBlue = shape.fillBlue();
*
2014-04-04 11:17:09 +08:00
* // set fill blue component
* shape.fillBlue(0);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillAlpha', 1, Kinetic.Validators.alphaComponent);
/**
* get/set fill alpha component. Alpha is a real number between 0 and 1. The default
* is 1.
* @name fillAlpha
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} alpha
* @returns {Number}
* @example
2014-04-04 11:17:09 +08:00
* // get fill alpha component
* var fillAlpha = shape.fillAlpha();
*
2014-04-04 11:17:09 +08:00
* // set fill alpha component
* shape.fillAlpha(0.5);
*/
2013-05-08 01:19:54 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternX', 0);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 12:54:57 +08:00
* get/set fill pattern x
* @name fillPatternX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern x
* var fillPatternX = shape.fillPatternX();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern x
2014-01-12 12:54:57 +08:00
* shape.fillPatternX(20);
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternY', 0);
/**
2014-01-12 12:54:57 +08:00
* get/set fill pattern y
* @name fillPatternY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern y
* var fillPatternY = shape.fillPatternY();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern y
2014-01-12 12:54:57 +08:00
* shape.fillPatternY(20);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillLinearGradientColorStops');
2013-01-03 13:35:51 +08:00
/**
2014-01-12 12:54:57 +08:00
* get/set fill linear gradient color stops
* @name fillLinearGradientColorStops
* @method
* @memberof Kinetic.Shape.prototype
* @param {Array} colorStops
2013-12-13 13:41:41 +08:00
* @returns {Array} colorStops
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient color stops
* var colorStops = shape.fillLinearGradientColorStops();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // create a linear gradient that starts with red, changes to blue
* // halfway through, and then changes to green
2014-01-12 12:54:57 +08:00
* shape.fillLinearGradientColorStops(0, 'red', 0.5, 'blue', 1, 'green');
*/
2013-12-05 02:55:50 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientStartRadius', 0);
/**
2014-01-12 12:54:57 +08:00
* get/set fill radial gradient start radius
* @name fillRadialGradientStartRadius
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} radius
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get radial gradient start radius
* var startRadius = shape.fillRadialGradientStartRadius();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // set radial gradient start radius
2014-01-12 12:54:57 +08:00
* shape.fillRadialGradientStartRadius(0);
2013-01-03 13:35:51 +08:00
*/
2013-12-05 02:55:50 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientEndRadius', 0);
/**
2014-01-12 12:54:57 +08:00
* get/set fill radial gradient end radius
* @name fillRadialGradientEndRadius
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} radius
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get radial gradient end radius
* var endRadius = shape.fillRadialGradientEndRadius();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // set radial gradient end radius
2014-01-12 12:54:57 +08:00
* shape.fillRadialGradientEndRadius(100);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientColorStops');
2013-01-03 13:35:51 +08:00
/**
2014-01-12 12:54:57 +08:00
* get/set fill radial gradient color stops
* @name fillRadialGradientColorStops
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} colorStops
2013-12-13 13:41:41 +08:00
* @returns {Array}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient color stops
* var colorStops = shape.fillRadialGradientColorStops();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // create a radial gradient that starts with red, changes to blue
* // halfway through, and then changes to green
2014-01-12 12:54:57 +08:00
* shape.fillRadialGradientColorStops(0, 'red', 0.5, 'blue', 1, 'green');
2013-01-03 13:35:51 +08:00
*/
2014-01-12 12:54:57 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternRepeat', 'repeat');
2013-01-03 13:35:51 +08:00
/**
2014-01-12 12:54:57 +08:00
* get/set fill pattern repeat. Can be 'repeat', 'repeat-x', 'repeat-y', or 'no-repeat'. The default is 'repeat'
* @name fillPatternRepeat
* @method
* @memberof Kinetic.Shape.prototype
2014-01-12 12:54:57 +08:00
* @param {String} repeat
2013-12-13 13:41:41 +08:00
* @returns {String}
2014-01-12 12:54:57 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern repeat
* var repeat = shape.fillPatternRepeat();
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // repeat pattern in x direction only
* shape.fillPatternRepeat('repeat-x');
2014-01-12 12:54:57 +08:00
*
2014-04-04 11:17:09 +08:00
* // do not repeat the pattern
2014-01-12 12:54:57 +08:00
* shape.fillPatternRepeat('no repeat');
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillEnabled', true);
2013-01-03 13:35:51 +08:00
2013-05-08 01:19:54 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill enabled flag
* @name fillEnabled
* @method
* @memberof Kinetic.Shape.prototype
2013-05-08 01:19:54 +08:00
* @param {Boolean} enabled
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill enabled flag
* var fillEnabled = shape.fillEnabled();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // disable fill
* shape.fillEnabled(false);
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // enable fill
2014-01-12 16:23:53 +08:00
* shape.fillEnabled(true);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeEnabled', true);
2013-05-08 01:19:54 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set stroke enabled flag
* @name strokeEnabled
* @method
* @memberof Kinetic.Shape.prototype
2013-05-08 01:19:54 +08:00
* @param {Boolean} enabled
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get stroke enabled flag
* var strokeEnabled = shape.strokeEnabled();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // disable stroke
* shape.strokeEnabled(false);
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // enable stroke
2014-01-12 16:23:53 +08:00
* shape.strokeEnabled(true);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'shadowEnabled', true);
2013-05-08 01:19:54 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set shadow enabled flag
* @name shadowEnabled
* @method
* @memberof Kinetic.Shape.prototype
2013-05-08 01:19:54 +08:00
* @param {Boolean} enabled
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get shadow enabled flag
* var shadowEnabled = shape.shadowEnabled();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // disable shadow
* shape.shadowEnabled(false);
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // enable shadow
2014-01-12 16:23:53 +08:00
* shape.shadowEnabled(true);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'dashEnabled', true);
2013-05-08 01:19:54 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set dash enabled flag
* @name dashEnabled
* @method
* @memberof Kinetic.Shape.prototype
2013-05-08 01:19:54 +08:00
* @param {Boolean} enabled
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get dash enabled flag
* var dashEnabled = shape.dashEnabled();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // disable dash
* shape.dashEnabled(false);
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // enable dash
2014-01-12 16:23:53 +08:00
* shape.dashEnabled(true);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'strokeScaleEnabled', true);
2013-01-03 13:35:51 +08:00
2014-01-12 16:23:53 +08:00
/**
* get/set strokeScale enabled flag
* @name strokeScaleEnabled
* @method
* @memberof Kinetic.Shape.prototype
* @param {Boolean} enabled
2013-12-13 13:41:41 +08:00
* @returns {Boolean}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get stroke scale enabled flag
* var strokeScaleEnabled = shape.strokeScaleEnabled();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // disable stroke scale
* shape.strokeScaleEnabled(false);
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // enable stroke scale
2014-01-12 16:23:53 +08:00
* shape.strokeScaleEnabled(true);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPriority', 'color');
/**
2014-01-12 16:23:53 +08:00
* get/set fill priority. can be color, pattern, linear-gradient, or radial-gradient. The default is color.
* This is handy if you want to toggle between different fill types.
* @name fillPriority
* @method
* @memberof Kinetic.Shape.prototype
2014-01-12 16:23:53 +08:00
* @param {String} priority
2013-12-13 13:41:41 +08:00
* @returns {String}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill priority
* var fillPriority = shape.fillPriority();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill priority
2014-01-12 16:23:53 +08:00
* shape.fillPriority('linear-gradient');
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillPatternOffset', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern offset
* @name fillPatternOffset
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} offset
* @param {Number} offset.x
* @param {Number} offset.y
2014-01-12 16:23:53 +08:00
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern offset
* var patternOffset = shape.fillPatternOffset();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern offset
* shape.fillPatternOffset({
* x: 20
* y: 10
* });
2013-01-03 13:35:51 +08:00
*/
2013-05-08 01:19:54 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternOffsetX', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern offset x
* @name fillPatternOffsetX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern offset x
* var patternOffsetX = shape.fillPatternOffsetX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern offset x
2014-01-12 16:23:53 +08:00
* shape.fillPatternOffsetX(20);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternOffsetY', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern offset y
* @name fillPatternOffsetY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern offset y
* var patternOffsetY = shape.fillPatternOffsetY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern offset y
2014-01-12 16:23:53 +08:00
* shape.fillPatternOffsetY(10);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillPatternScale', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern scale
* @name fillPatternScale
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} scale
* @param {Number} scale.x
* @param {Number} scale.y
2014-01-12 16:23:53 +08:00
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern scale
* var patternScale = shape.fillPatternScale();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern scale
* shape.fillPatternScale({
* x: 2
* y: 2
* });
2013-01-03 13:35:51 +08:00
*/
2014-01-13 13:48:33 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternScaleX', 1);
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern scale x
* @name fillPatternScaleX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern scale x
* var patternScaleX = shape.fillPatternScaleX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern scale x
2014-01-12 16:23:53 +08:00
* shape.fillPatternScaleX(2);
*/
2014-01-13 13:48:33 +08:00
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternScaleY', 1);
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern scale y
* @name fillPatternScaleY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern scale y
* var patternScaleY = shape.fillPatternScaleY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern scale y
2014-01-12 16:23:53 +08:00
* shape.fillPatternScaleY(2);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillLinearGradientStartPoint', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient start point
* @name fillLinearGradientStartPoint
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} startPoint
* @param {Number} startPoint.x
* @param {Number} startPoint.y
2014-01-12 16:23:53 +08:00
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient start point
* var startPoint = shape.fillLinearGradientStartPoint();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient start point
* shape.fillLinearGradientStartPoint({
* x: 20
* y: 10
* });
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillLinearGradientStartPointX', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient start point x
* @name fillLinearGradientStartPointX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient start point x
* var startPointX = shape.fillLinearGradientStartPointX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient start point x
2014-01-12 16:23:53 +08:00
* shape.fillLinearGradientStartPointX(20);
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillLinearGradientStartPointY', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient start point y
* @name fillLinearGradientStartPointY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient start point y
* var startPointY = shape.fillLinearGradientStartPointY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient start point y
2014-01-12 16:23:53 +08:00
* shape.fillLinearGradientStartPointY(20);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillLinearGradientEndPoint', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient end point
* @name fillLinearGradientEndPoint
* @method
* @memberof Kinetic.Shape.prototype
* @param {Object} endPoint
2014-01-12 16:23:53 +08:00
* @param {Number} endPoint.x
* @param {Number} endPoint.y
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient end point
* var endPoint = shape.fillLinearGradientEndPoint();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient end point
* shape.fillLinearGradientEndPoint({
* x: 20
* y: 10
* });
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillLinearGradientEndPointX', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient end point x
* @name fillLinearGradientEndPointX
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} x
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient end point x
* var endPointX = shape.fillLinearGradientEndPointX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient end point x
2014-01-12 16:23:53 +08:00
* shape.fillLinearGradientEndPointX(20);
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillLinearGradientEndPointY', 0);
/**
2014-01-12 16:23:53 +08:00
* get/set fill linear gradient end point y
* @name fillLinearGradientEndPointY
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill linear gradient end point y
* var endPointY = shape.fillLinearGradientEndPointY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill linear gradient end point y
2014-01-12 16:23:53 +08:00
* shape.fillLinearGradientEndPointY(20);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPoint', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient start point
* @name fillRadialGradientStartPoint
* @method
* @memberof Kinetic.Shape.prototype
2013-12-04 14:01:22 +08:00
* @param {Object} startPoint
* @param {Number} startPoint.x
* @param {Number} startPoint.y
2014-01-12 16:23:53 +08:00
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient start point
* var startPoint = shape.fillRadialGradientStartPoint();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient start point
* shape.fillRadialGradientStartPoint({
* x: 20
* y: 10
2013-12-04 14:01:22 +08:00
* });
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPointX', 0);
2013-12-04 14:01:22 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient start point x
* @name fillRadialGradientStartPointX
* @method
* @memberof Kinetic.Shape.prototype
2013-12-04 14:01:22 +08:00
* @param {Number} x
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient start point x
* var startPointX = shape.fillRadialGradientStartPointX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient start point x
2014-01-12 16:23:53 +08:00
* shape.fillRadialGradientStartPointX(20);
2013-01-03 13:35:51 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPointY', 0);
2013-12-04 14:01:22 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient start point y
* @name fillRadialGradientStartPointY
* @method
* @memberof Kinetic.Shape.prototype
2013-12-04 14:01:22 +08:00
* @param {Number} y
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient start point y
* var startPointY = shape.fillRadialGradientStartPointY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient start point y
2014-01-12 16:23:53 +08:00
* shape.fillRadialGradientStartPointY(20);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPoint', ['x', 'y']);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient end point
* @name fillRadialGradientEndPoint
* @method
* @memberof Kinetic.Shape.prototype
2013-12-04 14:01:22 +08:00
* @param {Object} endPoint
* @param {Number} endPoint.x
* @param {Number} endPoint.y
2014-01-12 16:23:53 +08:00
* @returns {Object}
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient end point
* var endPoint = shape.fillRadialGradientEndPoint();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient end point
* shape.fillRadialGradientEndPoint({
* x: 20
* y: 10
2013-12-04 14:01:22 +08:00
* });
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPointX', 0);
2013-12-04 14:01:22 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient end point x
* @name fillRadialGradientEndPointX
* @method
* @memberof Kinetic.Shape.prototype
2014-01-12 16:23:53 +08:00
* @param {Number} x
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient end point x
* var endPointX = shape.fillRadialGradientEndPointX();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient end point x
2014-01-12 16:23:53 +08:00
* shape.fillRadialGradientEndPointX(20);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPointY', 0);
2013-12-04 14:01:22 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill radial gradient end point y
* @name fillRadialGradientEndPointY
2013-12-04 14:01:22 +08:00
* @method
* @memberof Kinetic.Shape.prototype
* @param {Number} y
2013-12-13 13:41:41 +08:00
* @returns {Number}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill radial gradient end point y
* var endPointY = shape.fillRadialGradientEndPointY();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill radial gradient end point y
2014-01-12 16:23:53 +08:00
* shape.fillRadialGradientEndPointY(20);
2013-05-08 01:19:54 +08:00
*/
Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillPatternRotation', 0);
2013-01-03 13:35:51 +08:00
/**
2014-01-12 16:23:53 +08:00
* get/set fill pattern rotation in degrees
* @name fillPatternRotation
* @method
* @memberof Kinetic.Shape.prototype
2013-01-03 13:35:51 +08:00
* @param {Number} rotation
2013-12-13 13:41:41 +08:00
* @returns {Kinetic.Shape}
2014-01-12 16:23:53 +08:00
* @example
2014-04-04 11:17:09 +08:00
* // get fill pattern rotation
* var patternRotation = shape.fillPatternRotation();
2014-01-12 16:23:53 +08:00
*
2014-04-04 11:17:09 +08:00
* // set fill pattern rotation
2014-01-12 16:23:53 +08:00
* shape.fillPatternRotation(20);
*/
2013-01-03 13:35:51 +08:00
Kinetic.Factory.backCompat(Kinetic.Shape, {
dashArray: 'dash',
getDashArray: 'getDash',
setDashArray: 'getDash',
drawFunc: 'sceneFunc',
getDrawFunc: 'getSceneFunc',
setDrawFunc: 'setSceneFunc',
drawHitFunc: 'hitFunc',
getDrawHitFunc: 'getHitFunc',
setDrawHitFunc: 'setHitFunc'
});
Kinetic.Collection.mapMethods(Kinetic.Shape);
})();