import mx.transitions.Tween; import mx.transitions.easing.*; class Karaoke{ var word_:Object; var txt_:Object; var _col:Number = 0xff0000; var _timer:Number = 10; var mask_:MovieClip; function Karaoke() { } function setColor(color:Number) { this._col = color; } function setTimer(timer:Number) { this._timer = timer; } function reset() { this.word_.removeMovieClip(); this.mask_.removeMovieClip(); // trace([delete this.word_, _root._word2]); } function run(obj_:Object, txt_:Object) { var word2_ = obj_.duplicateMovieClip("_word2", _root.getNextHighestDepth()); this.word_ = word2_; this.txt_ = txt_; var tf = this.txt_.getTextFormat(); var txt2_:TextField = this.word_.createTextField ("txt2_", _root.getNextHighestDepth(), this.txt_._x, this.txt_._y, this.txt_._width, this.txt_._height); txt2_.text = this.txt_.text; // txt2_._y = 10; tf.color = this._col; txt2_.setTextFormat(tf); var mask:MovieClip = this.getMask(); this.word_.setMask(mask); var mask_tween:Object = new Tween(mask, "_xscale", None.easeOut, 0, 100, this._timer, true); this.mask_ = mask; } private function getMask() { var mask:MovieClip = _root.createEmptyMovieClip("mask", _root.getNextHighestDepth()); mask.beginFill(0xFF00FF, 100); mask.moveTo(this.word_._x, this.word_._y); mask.lineTo(this.word_._x + this.word_._width, this.word_._y); mask.lineTo(this.word_._x + this.word_._width, this.word_._y + this.word_._height); mask.lineTo(this.word_._x, this.word_._y + this.word_._height); mask.lineTo(this.word_._x, this.word_._y); mask.endFill(); return mask; } }