Question

I'm trying to stroke my Kinetic Spline object with a gradient instead of a solid color. However, my spline is turning out black. Any ideas?

Here's my code:

var stage = new Kinetic.Stage({
    container: 'container',
    width: 578,
    height: 200
  });
var layer = new Kinetic.Layer(); 
var blueSpline = new Kinetic.Spline({
    points: [{
      x: 73,
      y: 160
    }, {
      x: 340,
      y: 23
    }, {
      x: 500,
      y: 109
    }, {
      x: 300,
      y: 109
    }],
    strokeWidth: 10,
    lineCap: 'round',
    tension: 1,
    fillLinearGradientStartPoint: [73, 160],
    fillLinearGradientEndPoint: [300, 109],
    fillLinearGradientColorStops: ['#ff0000', '#00ff00'],
    fillPriority: 'linear-gradient'
  });

  layer.add(blueSpline);
  stage.add(layer);
Was it helpful?

Solution

You can try this:

var ctx = layer.getContext();
var grad = ctx.createLinearGradient(73, 160, 300, 109);
grad.addColorStop(0, '#ff0000');
grad.addColorStop(1, '#00ff00');

var blueSpline = new Kinetic.Spline({
...
stroke: grad,
...
});

Here is an example: http://jsfiddle.net/qK6nq/

OTHER TIPS

KineticJS does not support gradient strokes--only gradient fills.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top