Directed Movement

In this Lesson

You will learn how Soiree supports directed movement within a solution.


Soiree provides directed movement in three ways

  1. Opening and closing scene layers
    Elements in a scene may open or close the scene’s layers in response to user activity. This provides navigation within a scene.
  2. Scene transitions
    Elements in a scene may transfer control to another scene in response to user activity. This provides navigation from scene to scene within the same session.
  3. Scene requests
    Agents may transfer control to another scene in the current session, start scenes in other sessions, or close sessions. The agent may also control which of the scene’s layers are initially open when the scene is started by overriding the default visible layers defined in the scene. This provides navigation into and out of scenes.

Adaptive Navigation

Each of these mechanisms can be used to provide adaptive navigation while leaving the solution in control of which navigation path is followed.

  • Adaptive Scene Layers
    This can be accomplished by using the elements visible / hidden properties. Consider a design where a ‘Next step’ button will take a student to one of 4 different layers depending on what score they received on an exam.
    • You could use 4 button elements
    • Each element would be configured to open one of the 4 optional layers
    • You would control each element’s visibility by binding each element to a separate boolean value in the agent
    • The agent would set one of the four boolean values true and all other boolean values false depending on the student’s exam score
    • You would then position the elements on top of each other in the scene design
    • At runtime only one of the elements would be visible and when the use selects it the appropriate layer would open.
  • Adaptive Scene Transitions
    Adaptive scene transitions work identically to the layers because they are also a request made by the element.
  • Adaptive Scene Requests
    Adaptive scene requests are created by using an agent to control which scene should be started.

    The recommended approach is to use scene transitions as much as possible because this leaves the designer in control. However, when scene transitions become impractical or impossible to implement your design then you should have the scene element send an event to the agent asking it to do the right thing.

    The agent can respond by using the com.seronix.pump.Pump class to make sceneRequests or to close sessions.

That’s all for this lesson.