home *** CD-ROM | disk | FTP | other *** search
- property buttonChannel, buttonType, buttonLoc, onPict, upPict, downPict, offPict, buttonState, buttonAction, oldPict, tracker, stayDown
-
- on new me, bType, bState, bChannel, trak
- set buttonChannel to bChannel
- set buttonState to bState
- set tracker to trak
- setButtonType(me, bType)
- swapImage(me)
- return me
- end
-
- on swapImage me
- if not stayDown then
- case buttonState of
- #on:
- set the member of sprite buttonChannel to onPict
- #up:
- set the member of sprite buttonChannel to upPict
- #down:
- set the member of sprite buttonChannel to downPict
- #off:
- set the member of sprite buttonChannel to offPict
- end case
- else
- case buttonState of
- #on:
- set the member of sprite buttonChannel to downPict
- #up:
- set the member of sprite buttonChannel to downPict
- #down:
- set the member of sprite buttonChannel to downPict
- #off:
- set the member of sprite buttonChannel to offPict
- end case
- end if
- end
-
- on reset me
- updateStage()
- end
-
- on buttonActive me
- set oldState to buttonState
- if rollOver(buttonChannel) then
- if the stillDown then
- case buttonState of
- #on:
- set buttonState to #down
- #up:
- set buttonState to #down
- mouseDownIt(buttonAction)
- #down:
- set buttonState to #down
- mousePressed(buttonAction)
- #off:
- set buttonState to #off
- end case
- else
- case buttonState of
- #on:
- set buttonState to #up
- #up:
- set buttonState to #up
- #down:
- set buttonState to #up
- mouseReleased(buttonAction)
- #off:
- set buttonState to #off
- end case
- end if
- else
- if (buttonState <> #off) and (buttonState <> #stayDown) then
- set buttonState to #on
- if the stillDown = 0 then
- deactivate(tracker, me)
- end if
- else
- deactivate(tracker, me)
- end if
- end if
- if buttonState <> oldState then
- swapImage(me)
- updateStage()
- end if
- end
-
- on getChannel me
- return buttonChannel
- end
-
- on setButtonState me, bState
- set buttonState to bState
- swapImage(me)
- end
-
- on getButtonState me
- return buttonState
- end
-
- on newButtonType me, bType
- setButtonType(me, bType)
- swapImage(me)
- updateStage()
- end
-
- on setButtonType me, bType
- set buttonType to bType
- set buttonAction to new(script (buttonType & "ButtonScript"))
- set onPict to member (buttonType & "On")
- set upPict to member (buttonType & "Up")
- set downPict to member (buttonType & "Down")
- set offPict to member (buttonType & "Off")
- end
-
- on turnON me
- if buttonState = #off then
- setButtonState(me, #on)
- updateStage()
- end if
- end
-
- on buttonOn me
- if buttonState = #off then
- return 0
- end if
- return 1
- end
-
- on turnOff me
- if buttonState <> #off then
- setButtonState(me, #off)
- updateStage()
- end if
- end
-
- on stayDown me
- set stayDown to 1
- end
-
- on popUp me
- set stayDown to 0
- end
-