DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
Adjust FPS With Actionscript
// Usage
// sets _root.yourMC fps to 100 playing forward, but none of the child mcs, that will stop on the last frame
// _root.yourMC.engineTune(100)
// sets _root.yourMC fps to 20 playing forward, including the child mcs
// _root.yourMC.engineTune(20, true)
// sets _root.yourMC fps to 50 playing backward if the currentframe is greater than 20, without altering the child mcs
// _root.yourMC.engineTune(50, false, "down", 20)
MovieClip.prototype.engineTune = function(fps, inherit, dir, endF) {
var intv, mc, d, end;
intv = 1000/fps;
d = (dir == "down") ? -1 : 1;
if (!endF) end = (dir == "down") ? 1 : this._totalframes;
clearInterval(this.tuneUpID);
this.tuneUpID = setInterval(fineTune, intv, this, d, this._currentframe, end);
if (inherit) {
for (var i in this) {
if (typeof (this[i]) == "movieclip") {
clearInterval(this[i].tuneUpID);
this[i].tuneUpID = setInterval(fineTune, intv, this[i], d, this[i]._currentframe, end);
}
}
}
function fineTune(mc, d, sf, end) {
_if = (sf<end) ? mc._currentframe < end : mc._currentframe > end
if (_if) {
mc.gotoAndStop(mc._currentframe+d);
} else {
clearInterval(mc.tuneUpID);
}
}
};





