When you use the "input" command it stops all the action till the user hits enter. It's better to make your own input command so you do whatever you want while the user is typing in text. It also allows you to add a "sync" if you have "sync on".
Most of us use "entry$()" when we want a string input.
This code snip uses "entry$()" and has a backspace workaround for 5.9:
` Make an image
box 0,0,50,50
get image 1,0,0,50,50,1
` Clear all the keys pressed so a$ will only be 1 character
clear entry buffer
tim=timer()
set text opaque
y=480
do
` Clear the screen and show the prompt with the current string
cls 0
text 0,0,"User Input: " + Com$+" "
` Take one letter from entry$() and erase entry$()
a$=entry$():clear entry buffer
` Backspace workaround for 5.9
if keystate(14) and timer()>tim+100
Com$ = left$(Com$,len(Com$)-1)
a$="":tim=timer()
endif
` Check for the enter key
if a$=chr$(13) then exit
` Add a$ to Com$ if a$
if a$<>"" then Com$ = Com$ + a$
` Do whatever you want here
sprite 1,x,y,1
inc y
if y>480 then x=rnd(640):y=0
loop
text 0,20,Com$
wait key