/* Made by fry at friedcellcollective dot net Use and distribute this freely. Just include this comment block. Version 1.0 setTimeout:public usage setTimeout(function, interval [, arg1, arg2,...,argn]) setTimeout(object, methodName, interval [, arg1, arg2,...,argn]) setTimeout(object, method, interval [, arg1, arg2,...,argn]) parameters function A reference to a function or an anonymous function object object An object of type Object or MovieClip methodName The name of the method to call on the object parameter method A reference to the method to call on the object parameter interval The time in milliseconds between now and the call to function or method arg1, arg2,...,argn Optional parameters to pass to the function or method returns A timeout identifier that you can pass to clearTimeout to cancel the timer. description Action; calls a function or a method after a certain time interval has passed. Uses the builtin function setInterval. Usage 3 allows you to call a method of a certain object with a different scope (the object this inside the method) example usage 1: setTimeout(function(){trace('timer called');},1000); or function test(arg) {trace('timer '+arg);} setTimeout(test,1000,'called'); usage 2: test = new Object(); test.method = function() {trace('timer called');} setTimeout(test,"method",1000); usage 3: test = new Object(); test.method = function(arg) {trace('timer '+arg);} setTimeout(test,test.method,1000,'called'); clearTimeout:public usage clearTimeout( timeoutID ) parameters timeoutID An id returned from a call to the setTimeout function. returns nothing. description Action; clears a call to the setTimeout function. example timerID = setTimeout(function(){trace('timer called');},1000); clearTimeout(timerID); _timeoutArray:private _execTimeout:private usage _execTimeout( timeoutID ) parameters timeoutID An id returned from a call to the setTimeout function. returns Whatever the called function or method returns. description Action; calls the set function or method and clears the timeout. example timerID = setTimeout(function(){trace('timer called');},1000); _execTimeout(timerID); */ _global._timeoutArray = new Array(); _global.setTimeout = function() { var timer = new Object(); var interval = 0; var s = 0; if (typeof(arguments[s])=='object' || typeof(arguments[0])=='movieclip') timer.obj = arguments[s++]; else timer.obj = null; timer.fn = (typeof(arguments[s])!='function')? timer.obj[arguments[s]] : arguments[s]; interval = parseInt(arguments[s+1]); timer.args = arguments.slice(s+2); if (typeof(timer.fn)!='function' || isNaN(interval)) return null; timer.id = _timeoutArray.length; timer.intid = setInterval(_execTimeout,interval,timer.id); _timeoutArray[timer.id] = timer; return timer.id; } _global._execTimeout = function(id) { var timer = _timeoutArray[id]; clearInterval(timer.intid); return timer.fn.apply(timer.obj,timer.args); } _global.clearTimeout = function(id) { clearInterval(_timeoutArray[id].intid); } ASSetPropFlags(_global,"_timeoutArray,setTimeout,_execTimeout,clearTimeout",3);