On Saturday, February 21, 2004, at 10:56 PM, [EMAIL PROTECTED] wrote:


-----------
Nope. The group has normal scrollbars (checked in Inspector for the group).
I'm faking a 'grab' of the content of the group by setting hScroll/vScroll
relative to mouseMove coordinates in a max/min bounding expression. You hold
down the mouse inside the card and 'grab' it (the fake, because a real grab
in Rev can't pass messages nor bound itself, and would end up moving the
entire group, scrollbars and all, which is no good), move it in any
direction you want, but when it reaches the scroll limits, it wont go any
further in that direction. Since I'm setting hScroll/vScroll via mouseMove,
the scrollbars react like their supposed to, but that's not the
problem...read on.



Ken,


Here's code I use to scroll an image in the direction that the mouse is moving.

I have a group named "Image Group" with scrollbars. Inside of that group is a single image. I first display the photo by setting the fileName property of the image. Then when I get a mouseDown in the image I call this routine:

on ScrollImage
    if the vScrollbar of group "Image Group" is true or \
        the hScrollbar of group "Image Group" is true then
      put the mouseLoc into lastLoc
      set the itemDelimiter to ","
      repeat while the mouse is down
        put the mouseLoc into curLoc
        put item 1 of lastLoc - item 1 of curLoc into deltaX
        put item 2 of lastLoc - item 2 of curLoc into deltaY
        if the vScrollbar of group "Image Group" is true then
          put the vScroll of group "Image Group" into curVScroll
          add deltaY to curVScroll
          set the vScroll of group "Image Group" to curVScroll
        end if
        if the hScrollbar of group "Image Group" is true then
          put the hScroll of group "Image Group" into curHScroll
          add deltaX to curHScroll
          set the hScroll of group "Image Group" to curHScroll
        end if
        put curLoc into lastLoc
      end repeat
    end if
end ScrollImage

It would be easy to add acceleration (by using a geometric multiplier factor on deltaX and deltaY) so that if you have a very large image the user doesn't have to keep mousing up and down in order to see the whole image.

Hope this helps.

-- Frank

_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to