touch_end(integer num_detected)
This
event is raised when an
agent stops touching the
object the
script is
attached to. The number of touching agents is passed to the script in the
num_detected parameter. Information on those objects may be gathered via the
llDetected* library
functions.
Event: | Triggered: | Triggered multiple times: |
touch() | while a user is clicking on the object. | YES |
touch_start() | when a user starts clicking on the object. | NO |
touch_end() | when a user stops clicking on the object. | NO |
Notes:
- "Touch" means "click on", not "collide with"; to deal with collisions, use the collision, collision_start, and collision_end events.
- Scripts containing a touch, touch_start, or touch_end event may be subject to "prim drift" caused by the user dragging the object when they mean to click it. To avoid this, use llSetStatus(STATUS_BLOCK_GRAB, TRUE) to block grabs, or see below.
- This kind of drift happens if the script changes state while the mouse button is down and the new state does not have any of the 3 touch event handlers. Adding a handler that does nothing to these states also avoids the problem, while still allowing the user to control-drag the object.
- The "NO" in the table above is inaccurate. Your script can get multiple touch_start or touch_end events on a single mouse click. Go figure! This happens with some mice but not others, and is probably mouse driver related.
See also the
llSetTouchText and
llPassTouches functions.
Events