Ho un oggetto activeX referenziato con la variabile map.
Se volessi lanciare il suo evento map.zoomScale, per non incorrere in errore devo prima verificare se una proprietà, Busy, è vera o falsa.
Ho pensato di ricorrere a setTimeout per rilanciare la funzione, e funziona.
Voglio però che setTimeout funzioni al massimo per 10 volte.
Per fare questo ho utilizzato una variabile contatore n, all'esterno della funzione.
Chiedo se non si possa migliorare facendo a meno di variabili esterne e demandando tutto alla funzione.
Ecco il mio codice:
e la richiamo con:codice:var n = 0; function _zoomScale(lat, lon, scale) { n++; if(n > 10) {alert("troppe iterazioni"); return;} if(map.Busy) window.setTimeout(function(){_zoomScale(lat, lon, scale)}, 1); else {map.zoomScale(lat, lon, scale);alert(n);n=0;} }
_zoomScale(lat, lon, scale);
![]()

Rispondi quotando