Creating viewports is a different question but scrolling through numbers is very possible.
The best way to achieve what you want (I think) would be to have 10 sprites using images of the numbers.
1-check for input
2-if input increases the current number then set the size of the current number sprite smaller in 'Y' and move it down
3-if input decreases the current number then set the size of the current number sprite smaller in 'Y' and move it up
4-as the current sprite is getting smaller increase the size of the next sprite and move it into place...
That's how I'd do it.
EDIT: Attached is an example, here's the code:
rem
rem AGK Application
rem
rem Landscape App
setVirtualResolution(640,480)
rem load media
global cNum as float
global tNum as integer
cNum = 5
tNum = 5
n=1
loadImage(1,"10.png")
createSprite(n,n)
setSpriteOffset(n,16,16)
setSpritePosition(n,320,240)
setSpriteSize(n,32,0)
for n=2 to 11
loadImage(n,str(n-1)+".png")
createSprite(n,n)
setSpriteOffset(n,16,16)
setSpritePosition(n,320,240)
setSpriteSize(n,32,0)
next
rem A Baxslash Did It!
do
up = getRawKeyPressed(38)
down = getRawKeyPressed(40)
tNum=tNum+up-down
if tNum<1
tNum=10
cNum=11
endif
if tNum>11
tNum=2
cNum=1
endif
if cNum<>tNum
diff# = (tNum - cNum)
if abs(diff#)>0.01
cNum = cNum + diff# * 0.1
else
cNum = tNum
endif
endif
for num=1 to 11
alpha# = 255 - (abs(cNum - num) * 255)
if alpha#<0 then alpha#=0
setSpriteColorAlpha(num,alpha#)
size# = (alpha# / 255) * 32
setSpriteSize(num,32,size#)
posY# = 240 + (cNum - num) * 32
if posY#>304 then posY#=304
if posY#<240 then posY#=240
setSpritePosition(num,320,posY#)
next
Sync()
loop