How I do them:
Global "mode" - for stopping game controls and such during the cinema. All code for the gameplay is under a subevent of mode=action and cinemas as a subevent of mode=cinema.
Global "scene" - name of the cinema.
Global "step" - there for progress through the cinema.
Example:
mode=cinema
scene=intro (this is supposed to be indented as a subevent of the above event, don't know why the forum's not letting it do that)
step=0
Hero.x is less than 100
- set Hero.x to self.x+100*dt
Hero.x is greater or equal to 100
- set Hero.x to 100
- set step to 1
step=1
trigger once
- create text, set text to "Valliant heroic statement!"
if mouse clicked
- destroy text
- sidekick: set variable 'mode' to "follow hero"
- set step to 2
Using this method you can also set individual objects to do their own behaviors that span multiple steps by giving them a similar variable setup as local variables, hence with setting the sidekick's mode variable. The behavior for that is written as subevents under the 'scene' variable near the top.