Some events can trigger other events, creating a stack of events. These events
will always trigger in a very specific order.
FKiSS movement
When an FKiSS action causes an object to move, the following sequence occurs:
- The object's current position (before movement) is checked to see if it has
collided with other objects
- collide() event is triggered
- The object moves to its new position
- apart() event is triggered
- in() event is triggered
- stillin() event is triggered
- out() event is triggered
- stillout() event is triggered
- The object's new position (after movement) is checked to see if it has
collided with other objects
- collide() event is triggered
- FKiSS actions continue executing after the FKiSS action which started this
sequence
User movement
The user clicks the mouse button on an object:
- press() event is triggered
The user moves the mouse:
- catch() event is triggered
- fixcatch() event is triggered, if fix value of object is greater than 1
- unfix() event is triggered, if fix value of object is equal to 1
- If the fix value of the object is greater than 0 but less than the
max fix value, the fix value is reduced by 1.
The user releases the mouse button:
- The object's original position (before dragging) is checked to see if it has
collided with other objects or
- The object's new position (after dragging) is checked to see if it has
collided with other objects
And the following events are triggered:
- collide() event is triggered
- apart() event is triggered
- in() event is triggered
- stillin() event is triggered
- out() event is triggered
- stillout() event is triggered
- release() event is triggered
- drop() event is triggered, if fix value of object is equal to 0
- fixdrop() event is triggered, if fix value of object is greater than 0
Set change
When a set (page) change is requested by clicking a menu button or the
changeset() FKiSS action, the following sequence occurs:
- All objects' current positions (on the current set) are checked to see if they
collided with other objects
- collide() event is triggered
- The new set becomes the current set
- set() event is triggered
- col() event is triggered if the palette has changed
- All objects' current positions (on the new set) are checked to see if they
collided with other objects
- collide() event is triggered