Listers,
 
I am writing a behavior which could scale or pan a flash
sprite.  Flash sprite size must stay uniform.  I have written the
behavior below and it seems to be working fine.  If you could
suggest any improvements, I would appreciate.

Drop this behavior on a flash sprite (I believe that it would also
work for vectors).  Click sprite for Scale Up, Alt-click for scale down, and

Control-click and drag for pan.

TIA
Jim

----Flash/Vector scale - pan behavior -------

property pMyMember, pMyOrigin, pMyDirective

on beginSprite me
  pMyMember = sprite(me.SpriteNum).member.number
  sprite(me.SpriteNum).scaleMode = #ShowAll
  sprite(me.SpriteNum).originMode = #point
  sprite(me.SpriteNum).originPoint = point(275, 200) -- midpoint of my 550 x
400 sprite
end



on mousewithin me
  if the commandDown then
    sprite(me.SpriteNum).cursor = 260
    pMyDirective = #pan
  else
    pMyDirective = #notpan
    if the optionDown then
      sprite(me.SpriteNum).cursor = 303
    else
      sprite(me.SpriteNum).cursor = 302
    end if
  end if
end

on mouseDown Me
  if pMyDirective = #pan then
    originalClick = sprite(1).stageToFlash(the mouseLoc)
    repeat while the mouseDown
      sprite(me.SpriteNum).viewpoint = sprite(me.SpriteNum).viewpoint +
originalClick \
       - sprite(1).stageToFlash(the mouseLoc)
    end repeat
  else
    -- scaling
    clickArea = sprite(1).stageToFlash(the mouseLoc)
    HalfDistance = clickArea - point(275,200)
    pMyOrigin = point(275,200) + (HalfDistance/2)
    
  end if
end


on mouseUp me
  if pMyDirective <> #pan then
    if the optionDown then
      mySign = (-1)
    else
      mySign = (1)
    end if
    sprite(me.SpriteNum).originPoint = pMyOrigin
    member(pMyMember).scale = member(pMyMember).scale +
(member(pMyMember).scale * .30 * mySign)
    --  put the keycode
  end if
end
[To remove yourself from this list, or to change to digest mode, go to 
http://www.penworks.com/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