http://stackoverflow.com/q/17029602/2252829

Example for this question on SO http://stackoverflow.com/q/17029602/2252829

HTML

<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.3.min.js"></script>
<div id="container"></div>

JavaScript

var DrawingTab = [];

var stage = new Kinetic.Stage({
    container: 'container',
    width: 500,
    height: 600
});

var layer = new Kinetic.Layer();

var rect0 = new Kinetic.Rect({
    x: 50,
    y: 50,
    width: 250,
    height: 150,
    fill: 'black',
    name: 'batteur',
    id: 'batteur'
});

var rect1 = new Kinetic.Rect({
    x: 300,
    y: 50,
    width: 150,
    height: 150,
    fill: 'black',
    name: 'batteur1',
    id: 'batteur1'
});

var rect2 = new Kinetic.Rect({
    x: 550,
    y: 50,
    width: 150,
    height: 150,
    fill: 'black',
    name: 'batteur2',
    id: 'batteur2'
});

layer.add(rect0);
layer.add(rect1);
layer.add(rect2);

stage.add(layer);

DrawingTab.push(rect0, rect1, rect2);

// -----------------------------------------
// -- code added:

// times (make changes according)
var timeToChange = 5000; // 5 seconds 
var timeToClick = 2000; // 2 seconds

// render all rects
layer.drawScene();

// add a logical rect for each rect in DrawingTab
var LogicalTab = [];
for (var i = 0; i < DrawingTab.length; ++i) {
    LogicalTab.push({
        isPressed: false,
        frame: 0
    });
}

// return a random integer between (min, max)
function random(min, max) {
    return Math.round(Math.random() * (max - min) + min);
};

// define colors
var colors = ["red", "yellow", "blue"];

// reset state of current rect
function reset(n) {
    var drect = DrawingTab[n];
    var lrect = LogicalTab[n];

    // check if current rect was clicked
    setTimeout(function () {
        if (!lrect.isPressed) {
            drect.setFill("black");

            // redraw scene
            layer.drawScene();
            lrect.frame = 0;
        }

        // turn off click event
        drect.off("click");
    }, timeToClick);
}

// start the animation
var start = setInterval(function () {
    // select a rect randomly
    var rand = random(0, 2);
    var drect = DrawingTab[rand];
    var lrect = LogicalTab[rand];

    // change color
   ...