home *** CD-ROM | disk | FTP | other *** search
/ MacAddict 6 / MacAddict_006_1997_02.iso / media / ThisIssue.Dxr / Internal_5_knobClass.ls < prev    next >
Encoding:
Text File  |  1996-11-22  |  1.3 KB  |  47 lines

  1. property knobstate, knobmaxstate, knobname, spritenum, callback
  2.  
  3. on new me, myknobname, maxstate, mycallback
  4.   set knobname to default("knob", myknobname)
  5.   set callback to default(EMPTY, mycallback)
  6.   repeat with index = 1 to the maxinteger
  7.     put index
  8.     if the number of member (knobname & string(index)) < 1 then
  9.       if index > 1 then
  10.         set knobmaxstate to index - 1
  11.         set knobstate to 1
  12.         set spritenum to castsprite(knobname & string(1))
  13.         puppetSprite(spritenum, 1)
  14.         exit repeat
  15.         next repeat
  16.       end if
  17.       alert("Castmember '" & knobname & "' could not be found.")
  18.       halt()
  19.     end if
  20.   end repeat
  21.   set knobmaxstate to default(knobmaxstate, maxstate)
  22.   return me
  23. end
  24.  
  25. on turn me
  26.   put spritenum
  27.   set x to the mouseH - the locH of sprite spritenum
  28.   set oldstate to knobstate
  29.   if x < 0 then
  30.     set knobstate to min(max(knobstate - 1, 1), knobmaxstate)
  31.   else
  32.     set knobstate to min(max(knobstate + 1, 1), knobmaxstate)
  33.   end if
  34.   set the memberNum of sprite spritenum to the number of member (knobname & string(knobstate))
  35.   updateStage()
  36.   if knobstate <> oldstate then
  37.     if callback <> EMPTY then
  38.       do(callback & "(" & knobstate & ")")
  39.     end if
  40.   end if
  41. end
  42.  
  43. on dispose me
  44.   puppetSprite(spritenum, 0)
  45.   return 0
  46. end
  47.