Ciao
Molto probabilmente se cerchi sul forum troverai diverse discussioni che trattano l'argomento.
Comunque sia ti do qualche consiglio.
Per una più facile stesura dello script è consigliato non inserire lo script direttamente sulle istanze ma piuttosto nominare le istanze e attribuirne i relativi gestori scrivendo tutto sui frame della timeline principale.
Ti verrà sicuramente meglio gestire le varie parti perché avrai sempre sottocchio il quadro della situazione.
Detto questo, ti consiglierei di risolvere nel modo seguente.
Quello che ti serve è una funzione che si ripeta periodicamente, ad esempio un evento enterFrame oppure un setInterval.
Io ho utilizzato il setInterval.
Sullo stage principale (o dove preferisci) dovrai mettere il campo di testo ed istanziarlo, ad esempio, col nome "campotesto".
Mentre i due pulsanti (senza nessuno script associato) dovrai istanziarli rispettivamente "p_su" e "p_giu".
Infine dovrai inserire in un frame (nella root) questo script:
Codice PHP:
p_su.s = -1;
p_giu.s = 1;
scrolling = 0;
p_su.onPress = p_giu.onPress=function () {
campotesto.scroll += campotesto.s=this.s;
scrolling = setInterval(function () {
campotesto.scroll += campotesto.s;
}, 60);
};
p_su.onRelease = p_su.onReleaseOutside=p_giu.onRelease=p_giu.onReleaseOutside=function () {
clearInterval(scrolling);
};
Il funzionamento è abbastanza semplice.
Inizialmente ho assegnato, ai due pulsanti, la variabile "s" in cui ho impostato un valore per l'incremento/decremento della funzione di scorrimento.
Ho quindi inizializzato la variabile "scrolling" che sarà impostata in seguito come intervallo.
All'evento onPress dei due pulsanti ho assegnato una funzione, all'interno della quale viene "passata", all'istanza campotesto, la variabile s che assumerà il valore di quella del pulsante premuto ( campotesto.s=this.s
Contemporaneamente, nella stessa riga, lo scroll di campotesto viene incrementato, una prima volta, dello stesso valore di s (campotesto.scroll += campotesto.s)
A questo punto la variabile "scrolling" viene impostata come intervallo che si ripeterà ogni 60 millesimi di secondo, richiamando la funzione dichiarata nello stesso setInterval.
Tale funzione non fa altro che incrementare lo scroll (campotesto.scroll += campotesto.s
del valore "s" passato precedentemente a campotesto.
Infine ho impostato gli eventi onRelease ed onReleaseOutside dei due pulsanti in modo da cancellare l'intervallo creato (clearInterval(scrolling)
quando si rilascia il pulsante premuto.
Spero sia chiaro.