Mi sa che il problema risiede nelle funzioni che usi...ho provato un semplicissimo esempio:
codice:
i=0;
id=setInterval(function() {trace(i); i++; if(i>10) clearInterval(id);},1000);
E si ferma esattamente quando i=10 come dovrebbe...