home *** CD-ROM | disk | FTP | other *** search
/ The Dynamic Human Version 2.0 / DH2_CD2.ISO / pc / data1.cab / Program_Executable_Files / switch.dxr / 00031_buttonObject.ls < prev    next >
Encoding:
Text File  |  1998-09-29  |  3.3 KB  |  104 lines

  1. property dynamicSprite, regionList, active
  2.  
  3. on new me, dSprite, rList
  4.   set dynamicSprite to dSprite
  5.   set regionList to duplicate(rList)
  6.   set active to 1
  7.   set the visible of sprite dynamicSprite to 0
  8.   puppetSprite(dynamicSprite, 1)
  9.   updateStage()
  10.   return me
  11. end
  12.  
  13. on death me
  14.   puppetSprite(dynamicSprite, 0)
  15.   set the visible of sprite dynamicSprite to 1
  16.   updateStage()
  17. end
  18.  
  19. on updateButton me
  20.   global gButUpdated, gAudioWindow, gquitWindow, BookmarkWindow
  21.   if not listp(regionList) then
  22.     return 
  23.   end if
  24.   set currH to the mouseH
  25.   set currV to the mouseV
  26.   if objectp(gAudioWindow) then
  27.     return 
  28.   end if
  29.   if objectp(gquitWindow) then
  30.     return 
  31.   end if
  32.   if objectp(BookmarkWindow) then
  33.     set testRect to the rect of BookmarkWindow
  34.     setAt(testRect, 1, getAt(testRect, 1) - the stageLeft - 1)
  35.     setAt(testRect, 2, getAt(testRect, 2) - the stageTop - 1)
  36.     setAt(testRect, 3, getAt(testRect, 3) - the stageLeft + 1)
  37.     setAt(testRect, 4, getAt(testRect, 4) - the stageTop + 1)
  38.   else
  39.     set testRect to rect(5, 5, 0, 0)
  40.   end if
  41.   if active then
  42.     set inRegion to 0
  43.     repeat with i = 1 to count(regionList)
  44.       set regionRect to getAt(getAt(regionList, i), 1)
  45.       if (currH > getAt(regionRect, 1)) and (currH < getAt(regionRect, 3)) and (currV > getAt(regionRect, 2)) and (currV < getAt(regionRect, 4)) and not inside(point(currH, currV), testRect) then
  46.         set the locH of sprite dynamicSprite to getAt(getAt(getAt(regionList, i), 2), 1)
  47.         set the locV of sprite dynamicSprite to getAt(getAt(getAt(regionList, i), 2), 2)
  48.         if the mouseDown then
  49.           set the memberNum of sprite dynamicSprite to getAt(getAt(regionList, i), 4)
  50.         else
  51.           set the memberNum of sprite dynamicSprite to getAt(getAt(regionList, i), 3)
  52.         end if
  53.         set the visible of sprite dynamicSprite to 1
  54.         set gButUpdated to 1
  55.         set inRegion to 1
  56.         exit repeat
  57.       end if
  58.     end repeat
  59.     if inRegion = 0 then
  60.       set the visible of sprite dynamicSprite to 0
  61.       updateStage()
  62.     end if
  63.   else
  64.     set the visible of sprite dynamicSprite to 0
  65.     updateStage()
  66.   end if
  67. end
  68.  
  69. on buttonMouseUp me
  70.   global gButMovie, gButFrame, gButRegionLists, gButCalled
  71.   if not listp(regionList) then
  72.     return 
  73.   end if
  74.   set currH to the mouseH
  75.   set currV to the mouseV
  76.   if active then
  77.     if voidp(gButCalled) then
  78.       set gButCalled to 0
  79.     end if
  80.     if gButCalled = 1 then
  81.       return 
  82.     end if
  83.     set inRegion to 0
  84.     repeat with i = 1 to count(regionList)
  85.       set regionRect to getAt(getAt(regionList, i), 1)
  86.       if (currH > getAt(regionRect, 1)) and (currH < getAt(regionRect, 3)) and (currV > getAt(regionRect, 2)) and (currV < getAt(regionRect, 4)) then
  87.         set the locH of sprite dynamicSprite to getAt(getAt(getAt(regionList, i), 2), 1)
  88.         set the locV of sprite dynamicSprite to getAt(getAt(getAt(regionList, i), 2), 2)
  89.         set the memberNum of sprite dynamicSprite to getAt(getAt(regionList, i), 3)
  90.         set the visible of sprite dynamicSprite to 1
  91.         set gButCalled to 1
  92.         do(getAt(getAt(regionList, i), 5))
  93.         set inRegion to 1
  94.         exit repeat
  95.       end if
  96.     end repeat
  97.     if inRegion = 0 then
  98.       set the visible of sprite dynamicSprite to 0
  99.     end if
  100.   else
  101.     set the visible of sprite dynamicSprite to 0
  102.   end if
  103. end
  104.