ShuffleEaselText.jsをeaseljs v0.6に対応

こちら http://clockmaker.jp/blog/2012/02/html5_shuffletext/ 
easeljs v0.6で動かなかったので

```javascript:ShuffleEaselText.js
/*
 * ShuffleText by Yasunobu Ikeda. Feb 3, 2012
 * Visit http://clockmaker.jp/ for documentation, updates and examples.
 *
 *
 * Copyright (c) 2012 Yasunobu Ikeda
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */

(function (window) {
    function ShuffleEaselText(text, font, color) {
        this.initialize(text, font, color);
        this.setText(text);
    }

    var p = ShuffleEaselText.prototype = new createjs.Text();

    p.sourceRandomCharacter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    p.emptyCharacter = " "; //"-";
    p.isRunning = false;
    p.duration = 600;
    p._orijinalStr = "";
    p._orijinalLength = "";
    p._timeCurrent = 0;
    p._timeStart = 0;
    p._randomIndex = [];

    p.setText = function (text) {
        this._orijinalStr = text;
        this._orijinalLength = text.length;
    };

    p.start = function () {
        this.stop();

        p._randomIndex = [];
        var str = "";
        for (var i = 0; i < this._orijinalLength; i++) {
            var rate = i / this._orijinalLength;
            p._randomIndex[i] = Math.random() * (1 - rate) + rate;
            str += this.emptyCharacter;
        }

        this._timeStart = new Date().getTime();
        this.addEventListener("tick", this.tickHandler);
        this.isRunning = true;

        this.text = str;
    };

    p.stop = function () {
        if (this.isRunning) {
            this.removeEventListener("tick", this.tickHandler);
        }
        this.isRunning = false;
    };

    p.tickHandler = function (event) {
        var that = event.target;
        that._timeCurrent = new Date().getTime() - that._timeStart;
        var percent = that._timeCurrent / that.duration;
        var str = "";
        var index;
        for (var i = 0; i < that._orijinalLength; i++) {
            if (percent >= p._randomIndex[i]) {
                str += that._orijinalStr.charAt(i);
            } else if (percent < p._randomIndex[i] / 3) {
                str += that.emptyCharacter;
            } else {
                index = Math.floor(Math.random() * (that.sourceRandomCharacter.length));
                str += that.sourceRandomCharacter.charAt(index);
            }
        }

        if (percent > 1) {
            str = that._orijinalStr;

            that.removeEventListener("tick", that.tickHandler);
            //that.removeAllEventListeners("tick");
            that.isRunning = false;

            that.dispatchEvent({type: "complete"}, that);
        }
        that.text = str;
    };

    window.ShuffleEaselText = ShuffleEaselText;
})(window);
```