
Код:
_global.idsArray = [];
ASSetPropFlags(_global, [setInterval], 0, 7); //оказалось - не нужно
_global.oldI = _global.setInterval;
_global.setInterval = function(){
trace(arguments);
var i = oldI.apply( null, arguments);
idsArray.push( i );
return(i);
}
ASSetPropFlags(_global, ["setInterval", "oldI"], 7, 7);//можно и не делать
setInterval ( trace, 1000, "interval");
setInterval ( trace, 1100, "interval2");
function f(){
trace ( arguments.join("") );
}
setInterval(this, "f", 5000, "син", "так", "сис", "2" );
function xMan(){
var i;
while( i = idsArray.pop() )clearInterval( i );
trace ("мусорщик пришел и все смел");
}
var i1 = oldI( trace, 2000, "а это наш интервал, его пока не убиваем" );
var i2;
var temp = function(){
clearInterval(i1);
clearInterval(i2);
trace ("ну и наших убъем");
}
var i2 = oldI( temp, 10000 );
setInterval ( xMan, 5500 );
trace( idsArray );

PS> тоже хак, конечно, но поддерживает оба синтаксиса и переменное число аргументов userData. Enjoy, короче.