I have been hoping for a while that QTVR's would run in revlets... I have been pestering support about this on a number of occasions.
The bug report can be found here... http://quality.runrev.com/qacenter/show_bug.cgi?id=8294
However the last reply from support states that "... you can't have interactivity with QTVR's in revlets. We're not sure if we will be able to add this, so I don't have any kind of timescale for you."... fair enough!. If that's the position,then that's the position. So, I thought that I would try and 'roll my own' interactivity with QTVR's in revlets... and I have had some success... You are able to see my attempt here :- http://www.revtest.ihouse.on-rev.com
If someone would like to look at this... place the script below in a player object and the QTVR will pan, tilt and zoom quite smoothly... on the desktop!... as a revlet 'Pan' and 'Tilt' is fine, though I am unable to 'zoom in' and 'zoom out'. If someone would be kind enough to cast an eye over this script and see if they have any suggestions about the problem of 'zooming' in and out... (or where I am going wrong) The 'zooming' in handled by the 'mouseWithin' handler (which works on the desktop)... it won't work when running as a revlet. I have tried 'keyDown', 'rawKeyDown', 'the keysDown'... but am not getting anywhere.
Code: Select all
local moviePan,movieRotateH,movieRotateStartLocH,oldMouseH
local movieTilt,movieRotateV,movieRotateStartLocV,oldMouseV
local movieZoom,whichZoom
on mouseWithin
if shiftKey() is down then
set the lockcursor to true
set cursor to 66
put the zoom of me into movieZoom
put 1 into whichZoom
set the qtidlerate to 1
zoomMovie
end if
if controlKey() is down then
set the lockcursor to true
set cursor to 67
put the zoom of me into movieZoom
put 2 into whichZoom
set the qtidlerate to 1
zoomMovie
end if
end mouseWithin
on mouseDown
set the lockcursor to false
set the qtidlerate to 1
put 0 into movieRotateH
put the pan of me into moviePan
put item 1 of mouseLoc() into movieRotateStartLocH
put 0 into movieRotateV
put the tilt of me into movieTilt
put item 2 of mouseLoc() into movieRotateStartLocV
updateMovie
end mouseDown
on mouseMove newMouseH,newMouseV
put ((movieRotateStartLocH - oldMouseH) * .01) into movieRotateH
put newMouseH into oldMouseH
put ((movieRotateStartLocV - oldMouseV) * .01) into movieRotateV
put newMouseV into oldMouseV
end mouseMove
on updateMovie
if the mouse is up then
repeat for each line cancelMessage in the pendingMessages
cancel (item 1 of cancelMessage)
end repeat
put 0 into movieRotateH
set the qtidlerate to 50
exit updateMovie
end if
add movieRotateH to moviePan
set the pan of me to moviePan
add movieRotateV to movieTilt
set the tilt of me to movieTilt
if movieTilt <= (item 1 of line 2 of the constraints of me) then put (item 1 of line 2 of the constraints of me) into movieTilt
if movieTilt >= (item 2 of line 2 of the constraints of me) then put (item 2 of line 2 of the constraints of me) into movieTilt
send updateMovie to me in 10 millisecs
end upDateMovie
on zoomMovie
if shiftKey() is up AND controlKey() is up then
repeat for each line cancelMessage in the pendingMessages
cancel (item 1 of cancelMessage)
end repeat
put empty into whichZoom
set the qtidlerate to 50
set lockcursor to false
exit zoomMovie
end if
if whichZoom = 1 then put (movieZoom - 0.2) into movieZoom
if whichZoom = 2 then put (movieZoom + 0.2) into movieZoom
wait 1 millisec with messages
set the zoom of me to movieZoom
if movieZoom <= (item 1 of line 3 of the constraints of me) then put (item 1 of line 3 of the constraints of me) into movieZoom
if movieZoom >= (item 2 of line 3 of the constraints of me) then put (item 2 of line 3 of the constraints of me) into movieZoom
send zoomMovie to me in 10 millisecs
end zoomMovie
be well
Dixie