FKiSS Event Order

See also: FKiSS, General Syntax, Data Types, If-Endif Structure, Shortcuts, Cel Groups, Value Pools, Events, Actions

Description

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:
  1. The object's current position (before movement) is checked to see if it has collided with other objects
    1. collide() event is triggered

  2. The object moves to its new position
    1. apart() event is triggered
    2. in() event is triggered
    3. stillin() event is triggered
    4. out() event is triggered
    5. stillout() event is triggered

  3. The object's new position (after movement) is checked to see if it has collided with other objects
    1. collide() event is triggered

  4. FKiSS actions continue executing after the FKiSS action which started this sequence

User movement

The user clicks the mouse button on an object:
  1. press() event is triggered
The user moves the mouse:
  1. catch() event is triggered
  2. fixcatch() event is triggered, if fix value of object is greater than 1
  3. unfix() event is triggered, if fix value of object is equal to 1
  4. 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:
  1. collide() event is triggered
  2. apart() event is triggered
  3. in() event is triggered
  4. stillin() event is triggered
  5. out() event is triggered
  6. stillout() event is triggered
  7. release() event is triggered
  8. drop() event is triggered, if fix value of object is equal to 0
  9. 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:
  1. All objects' current positions (on the current set) are checked to see if they collided with other objects
    1. collide() event is triggered

  2. The new set becomes the current set
    1. set() event is triggered
    2. col() event is triggered if the palette has changed

  3. All objects' current positions (on the new set) are checked to see if they collided with other objects
    1. collide() event is triggered