Is that just for Flash member? How about bitmaps? And where do i get the 
values from for other global properties?  And what is sprite(2) and 
sprite(3)? I've tried the code and it doesnt work properly..

Thanks in advance,
Martha




From: "Lilian Rudenco" <[EMAIL PROTECTED]>
Subject: Re: <lingo-l> Re: checking boundaries for panning image

this code is similar that you want

- -----------------------------------------------------------------

global gSelectOn, gDragOn, gZoomIn, gZoomOut, gZoomInOut, gRegionName,
gLanguage
global gWidthMin, gWidthMax, gWidthCurrent
global gDimensionMin, gDimensionMax, gDimensionCurrent
global gPositionLeft, gPositionRight

- -- PROPERTIES --
property pSprite               -- sprite object
property pActive               -- activity flag

- -- EVENT HANDLERS --
on beginSprite me
  -- determine sprite object reference
  pSprite = sprite (me.spriteNum)
  -- set activity flag
  pActive = FALSE
end beginSprite
- ---
on prepareFrame me
  -- if mouse has somehow moved off of sprite and been released
  -- turn off activity flag
  if the mouseUp then mDrag FALSE
  -- if active, move sprite to follow cursor
  if pActive then
    mDragSprite me
  end if
end prepareFrame
- ---
on mouseUp me
  -- turn off activity flag when mouse is released
  mDrag FALSE
end mouseUp
- ---
on mouseDown me
  repeat while the mouseDown
    if gZoomInOut = 1 then
      ZoomFlashMap
      ZoomDragHorizontalVerticalBar
      updateStage
    end if
    if gDragOn = 1 then
      mDrag TRUE
      ZoomDragHorizontalVerticalBar
      updateStage
    end if
    if gSelectOn = 1 then
      case sprite(1).mouseOverButton of
        TRUE:
          cursor 290
        FALSE:
          cursor -1
      end case
    end if
  end repeat
end
- ---
on rightMouseDown me
  if gDragOn = 0 then
    if gZoomIn = 1 then
      set gZoomOut = 1
      set gZoomIn = 0
      cursor 303
      repeat while the rightMouseDown
        ZoomFlashMap
        ZoomDragHorizontalVerticalBar
        updateStage
      end repeat
    else
      set gZoomOut = 0
      set gZoomIn = 1
      cursor 302
      repeat while the rightMouseDown
        ZoomFlashMap
        ZoomDragHorizontalVerticalBar
        updateStage
      end repeat
    end if
  end if
end
- ---
on rightMouseUp me
  if gDragOn = 0 then
    if gZoomIn = 1 then
      set gZoomOut = 1
      set gZoomIn = 0
      cursor 303
      updateStage
    else
      set gZoomOut = 0
      set gZoomIn = 1
      cursor 302
      updateStage
    end if
  end if
end
- ---
on mouseLeave me
  cursor -1
  updateStage
end
- ---

- -- CUSTOM HANDLERS --

on mDrag vActive
  -- set activity flag
  pActive = vActive
  -- find distance from sprite loc to mouse click
  -- pLocOffset = pSprite.loc - the mouseLoc
  -- inform other behaviors of current state
  sendAllSprites (#Active_Sprite, the currentSpriteNum * pActive)
end mDrag
- ---
on mDragSprite
  -- move sprite to cursor location offset by difference between
  -- original click and sprite loc
  -- pSprite.loc = the mouseLoc + pLocOffset

  pSprite.locH = (pSprite.locH - ((the mouseH - the locH of the clickLoc) *
0.05))
  pSprite.locV = (pSprite.locV - ((the mouseV - the locV of the clickLoc) *
0.05))

  vLeftDiff = pSprite.rect.left
  if vLeftDiff > 0 then
    pSprite.locH = pSprite.locH - vLeftDiff
  end if
  vRightDiff = pSprite.rect.right - the stage.rect.width
  if vRightDiff < 0 then
    pSprite.locH = pSprite.locH - vRightDiff
  end if
  vTopDiff = pSprite.rect.top
  if vTopDiff > 0 then
    pSprite.locV = pSprite.locV - vTopDiff
  end if
  vBottomDiff = pSprite.rect.bottom - the stage.rect.height
  if vBottomDiff < 0 then
    pSprite.locV = pSprite.locV - vBottomDiff
  end if
end mDragSprite


- -- INTER-BEHAVIOR COMMUNICATION

on Forwarded_mouseDown me
  -- turn on activity flag when mouse click is initially
  -- intercepted by another behavior and forwarded
  if not pActive then
    mDrag TRUE
  end if
  return the currentSpriteNum
end Forwarded_mouseDown

- ---

on ZoomFlashMap
  if rollover (1) then
    if gZoomOut = 1 then
      if gWidthCurrent <= gWidthMin then
        sprite(1).width = gWidthMin
        sprite(1).height = sprite(1).width * 0.7500
        PositionFlashMap
        updateStage
      else
        gDimensionCurrent = gDimensionCurrent + 20.0000
        sprite(2).width = gDimensionCurrent
        sprite(3).height = sprite(2).width * 0.7500
        gWidthCurrent = gWidthCurrent - 40.0000
        gPositionLeft = gPositionLeft + 20
        gPositionRight = gPositionRight - 20
        sprite(1).width = gWidthCurrent
        sprite(1).height = sprite(1).width * 0.7500
        PositionFlashMap
        updateStage
      end if
    else
      if gWidthCurrent >= gWidthMax then
        sprite(1).width = gWidthMax
        sprite(1).height = sprite(1).width * 0.7500
        PositionFlashMap
        updateStage
      else
        gDimensionCurrent = gDimensionCurrent - 20.0000
        sprite(2).width = gDimensionCurrent
        sprite(3).height = sprite(2).width * 0.7500
        gWidthCurrent = gWidthCurrent + 40.0000
        gPositionLeft = gPositionLeft - 20
        gPositionRight = gPositionRight + 20
        sprite(1).width = gWidthCurrent
        sprite(1).height = sprite(1).width * 0.7500
        PositionFlashMap
        updateStage
      end if
    end if
  end if
end ZoomFlashMap
- ---
on PositionFlashMap
  vLeftDiff = sprite(1).rect.left
  if vLeftDiff >= 0 then
    -- sprite(1).locH = sprite(1).locH - vLeftDiff
    set the locH of sprite 1 to constrainH(1, (sprite(1).rect.width /2))
  end if
  vRightDiff = sprite(1).rect.right - the stage.rect.width
  if vRightDiff <= 0 then
    sprite(1).locH = sprite(1).locH - vRightDiff
  end if
  vTopDiff = sprite(1).rect.top
  if vTopDiff >= 0 then
    -- sprite(1).locV = sprite(1).locV - vTopDiff
    set the locV of sprite 1 to constrainH(1, (sprite(1).rect.height /2))
  end if
  vBottomDiff = sprite(1).rect.bottom - the stage.rect.height
  if vBottomDiff <= 0 then
    sprite(1).locV = sprite(1).locV - vBottomDiff
  end if
end PositionFlashMap
- ---
on ZoomDragHorizontalVerticalBar
  cH = (gPositionRight - gPositionLeft) / (800.0001 - sprite(2).width)
  cV = ((gPositionRight * 0.7500) - (gPositionLeft * 0.7500)) / (600.0001 -
sprite(3).height)
  sprite(2).locH = ((800 - sprite(2).width) / 2) + (sprite(2).width -
((sprite(1).locH - 400) / cH))
  sprite(3).locV = ((600 - sprite(3).height) / 2) + (sprite(3).height -
((sprite(1).locV - 300) / cV))
end ZoomDragHorizontalVerticalBar
- ---

- -----------------------------------
on getURL me, stringFromFlash
  set gRegionName = stringFromFlash
  puppetTransition 51, 2, 20, FALSE
  go to frame 246
end







- ----- Original Message -----
From: "Martha Arifin" <[EMAIL PROTECTED]>
Subject: <lingo-l> Re: checking boundaries for panning image


>Hi all,
>I am trying to build a lingo-based panorama. I have some code happening for 
>panning left/right & zooming in/out relative to mouse movement. It works 
>fine, except when it's on its max left edge (or max right if i pan to the 
>left) and you move your to the half bottom of the image (which should zoom 
>the image out) it's still zooming out regardless that I have put the code 
>for checking the left and right boundaries... therefore the image is going 
>smaller than the constrained area.
>
>Here's the link with the dummy image:
>
>http://interchange.virtualave.net/panoramatest/panorama05.html
>(oopss... and forgive the popups)
>
>i have been pulling my hair trying to get around the scripting, but i
still couldnt get it right. Anyone can help? I can send the current script 
if that might help...
>
>Martha
>[EMAIL PROTECTED]

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.


[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi  To post messages to the list,
email [EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo.  Thanks!]

Reply via email to