setTimeout тоже использует clearTimeout
на счет setInterval код должен быть примерно таким:

Код:
stop();
var g_nIntervalID:Number;
function PlayFunc()
{
clearInterval(intervalId);
play();
}
g_nIntervalID = setInterval(this, "PlayFunc", 1000);
не скажу что он стал меньше :-) хотя все же понятнее и наверное правильнее