There is a TouchSensor on the group of shapes forming the button. The button has lines drawn on the left and upper edges, and lower and right edges to give it a 3D look. At the top are two circles, green and orange that are filled when the isActive and isOver respectively are true.
isActive and isOver are also combined and routed to ColorInterpolators to switch the look of the button when the (mouse) pointer is pressed while over the button. The colors of the border lines are altered to make it look pressed down. isOver is also used to "pop-up" a tool-tip.
To help visualize this there are a set of screen captures below taken at various times during the test
Snapshot of rendered output with pointer not over the button.
![]() |
Snapshot with pointer over the button. isOver is true (orange isOver indicator circle is filled
and tool-tip is shown).
![]() |
Snapshot with pointer pressed on the button. Both isActive is true and isOver is true.
![]() |
Snapshot with pointer held pressed but moved off the button. isActive stays true but isOver goes false.
![]() |
Snapshot after pointer moved back onto button and released. isActive is now false, isOver is true and
touchTime was generated as the pointer was released which was used to start a TimeSensor that is used, with
PositionInterpolator2Ds, to 'bounce' the indicators out to the edge of the screen and back to their
original positions.
![]() |