Quel codice come concetto va bene, manca diciamo un "azzeramento" del timer quando l'utente fa un'azione.
Prova così

stop();

function callback()
{

gotoAndPlay("loop", 1);

}

var intervalID;

intervalID = setInterval(callback, 180000);

_root.onMouseMove = function(){
clearInterval(intervalID)
intervalID = setInterval(callback, 180000);
}

In questo modo quando l'utente muove il mouse il timer dovrebbe resettarsi. Non ho flash sottomano quindi non ho la possibilità di provare