MovieClip.prototype.tweenTo = function(targetsObj, speed) { // init broadcaster if (!this.broadcastMessage) { AsBroadcaster.initialize(this); } this.targetsObj = targetsObj; this.speed = speed; // loop onEnterFrame this.onEnterFrame = function() { var count:Number = 0; // loop target objects for (var prop in this.targetsObj) { // change property value this[prop] += (this.targetsObj[prop]-this[prop])/this.speed; // if property == target if (Math.abs(this.targetsObj[prop]-this[prop])<.5) { this[prop] = this.targetsObj[prop]; delete this.targetsObj[prop]; } count++; } // if object is empty if (!count) { this.broadcastMessage("ready"); delete this.onEnterFrame; } }; };