Director: estrarre parole dal campo text.

Di: Max_P | 26/09/2020 17:59:48
Salve a tutti, eccomi di nuovo con un altro problema.
Ho un campo testo di nome “Codice” in cui inserisco delle serie di numeri separati dal simbolo “-” ed ogni serie è separata dalla successiva da [spazio]. Vorrei far in modo che quando digito lo [spazio], o premo il tasto Return, mi venga estratta la serie di numeri.
Nel behavior di score ho impostato il seguente codice:
on exitFrame me
if(_key.keyPressed(" ") or _key.keyPressed(Return)) then
EstraiParola
end if
go to the frame
end
E poi ho costruito lo script qui di seguito riportato:
on EstraiParola
Testo=Member("Codice").text -- “Codice” è il nome del campo testo
NumParole=Testo.word.count
Parola=Testo.Word[NumParole]
Put “Parola estratta”&&Parola
end EstraiParola
Se ad esempio inserisco la seguente stringa “22-12-17" seguita da [spazio] il risultato che ottengo è il seguente:
-- Welcome to Director --
-- "La parola estratta è 22-12-17"
-- "La parola estratta è 22-12-17"
-- "La parola estratta è 22-12-17"
come si vede, è ripetuta tre volte.
E poi, come se non bastasse, il cursore di testo al posto di rimanere posizionato nel campo dopo l’ultima parola digitata, ritorna all’inizio del campo.
Avete qualche consiglio da darmi per risolvere questi problemi?
Grazie e scusate se mi sono dilungato un po’ troppo.
Ciao a tutti.

Risposte



Ciao,
allora ho fatto qualche test e alla fine ho capito che dipende dalla velocità di esecuzione del movie. Ad esempio, se imposti la velocità a 10 anziché a 30 vedrai che che la stringa verrà stampata a video una sola volta. Al momento, la soluzione più semplice e veloce che ho trovato è quella di impostare il Canale del tempo sullo Score, basta impostare i fps ad esempio a 1 solo per la durata necessaria, dopodiché in caso di animazioni o altro la risetti alla velocità che preferisci.
A un altra cosa, questo problema si verifica solo nella finestra message, se provi a stampare a video in un altro campo di testo, questo non accade! Probabilmente il problema non sussuste.

Di: goku | 26/09/2020 17:59:48


Grazie goku, è tutto ok. Spero un giorno, sicuramente ci vorrà ancora un po' di tempo, di poter dare anche il mio contributo al forum.

Di: Max_P | 26/09/2020 17:59:48


Secondo me il problema si risolve usando keyUp al posto di keypressed, in questo modo anche se si stà attaccati allo spazio o al return sempre un solo keyUp verrà eseguito.
Maurizio

Di: maury | 26/09/2020 17:59:48