This code works. It's a bit long winded however, but uses the spacekey() to change between two camera positions, with a repeat eliminator (keypressed#), and also has path smoothing, that's why I used so many variables.
sync on
sync rate 30
hide mouse
autocam off
make matrix 1,1000,1000,5,5
a#=100
b#=200
c#=0
x#=700
y#=50
z#=100
cameradestx#=a#
cameradesty#=b#
cameradestz#=c#
keypressed#=0
mode=1
do
cameraposx#=curvevalue(cameradestx#,cameraposx#,10)
cameraposy#=curvevalue(cameradesty#,cameraposy#,10)
cameraposz#=curvevalue(cameradestz#,cameraposz#,10)
if spacekey()=1 and keypressed#=0
keypressed#=1
if mode=1
cameradestx#=a#
cameradesty#=b#
cameradestz#=c#
mode=0
else
cameradestx#=x#
cameradesty#=y#
cameradestz#=z#
mode=1
endif
endif
if spacekey()=0 then keypressed#=0
position camera cameraposx#, cameraposy#, cameraposz#
point camera 500,0,500
sync
loop
The camera always moves smoothly towards cameradest, and is positioned at camerapos. The thing with keypressed# is that it waits until spacekey has been lifted before it allows the angle change to occur again.