Script components make it possible
to use simple script language to play with components in a given element (and not only). This
makes it possible to create interactive presentations, animation,
video subtitling, etc.
To create a script do the
following:
- create an element in the desired shape
- add a script component from
the Compose toolbar
- right-click the component and
choose Script on the pop-up menu
- write the script and choose OK
While writing the script, use the
script editorÆs pop-up menu that makes it possible to insert
full command syntax into the editor (right-click the editor to
open the pop-up menu).
For example, to repeatedly play
music from a sound component designated by number tag 3, you
could write:
PLAY 3
GOTO 1
To view component number tags
click 148 speed-button on the Edit toolbar, or choose Component Order
on the element
pop-up menu. Note, that
when you right-click within the element
window, you will either
open a component
pop-up menu (if you click
over a component) or element pop-up menu (when you click an empty
area within the element).
The best way to learn more about
scripts is to inspect script components within collections shipped with SuperMemo (e.g. Cross
Country, Advanced
English or Video English).
Alternatively you can download a free collection Testing
knowledge in SuperMemo from SuperMemo Library.
Note: apostrophe is reserved in
scripts for delimiting string variables. If you need to include
an apostrophe in a string, use a backquote instead. For example:
TEXTOUT 3 æI`m delighted to
have met MonicaÆ
Script commands used in
SuperMemo
- To insert a comment into the
script, put it in a separate line and precede it with a
semicolon
Syntax:
;<Comment>
- To display a given registry image in an image component use
DISPLAY. Its first argument is the number of the image
component in the element. Its second argument is the name
of the image registry member
Syntax:
DISPLAY
<Component> <Image Registry member>
- To start a Drag&Match
exercise, use
DRAGMATCH. For multiple labels and multiple images use
Syntax:
DRAGMATCH [<Label
List>] [<Image list>]
For example:
DRAGMATCH [1,3,4,5] [6,7,8,9]
For single image component with specified hit areas and
multiple labels use
Syntax:
DRAGMATCH <Component> [<Label List>]
[<Rectangle List>]
For example:
DRAGMATCH 1 [1,2] [(100,100,30,20),(150,200,50,20)]
Use Edit Hit-Area on the image pop-up menu to
determine the positions of rectangles without worrying
about coordinates.
- To determine if labels erase
background of the image on which they are dropped in
Drag&Match exercises, use DRAGTEXTMODE
Syntax:
DRAGTEXTMODE
OPAQUE|TRANSPARENT
- To display another element of
the collection use ELEMENT with the number of the element
as the argument
Syntax:
ELEMENT <Number>
- To change a font in a text,
sound or Spell-Pad component, use FONT.
Syntax:
FONT <Component> <Font
registry member>
- To execute a frame of an
animation sequence, use FRAME. The <Component>
argument specifies the image component within which the
animation is executed (alternatively, BACKGROUND can be
used to execute animation in element entire background).
<Image Registry member> indicate the image that
makes up the executed frame
Syntax:
FRAME <Component>|BACKGROUND
<Image Registry member>
- To change the flow of script
execution use GOTO with script label or script line as an
argument:
Syntax:
GOTO <Label>|<Line>
- To hide a component use HIDE
Syntax:
HIDE <Component>
- To design Point&Click
exercises use
HITTEST. Use an image that displays the hit area as the
first argument, and a list of points that specify the
correct hit area.
Syntax:
HITTEST
<Component> [<list of points: (x1,y1)(x2,y2),
etc.>]
For example:
HITTEST 1 [(10,10),(100,10),(100,100),(10,100)]
Use Edit Hit-Area on the image pop-up menu to
determine the position of the hit area without worrying
about coordinates. The hit area may include no more than
five points
- To jump to a particular label
in the script you need to define the label with LABEL.
Syntax:
LABEL <Name>
- To move a component to a new
location use MOVE:
Syntax:
MOVE <Component> <X>
<Y>
- To play a sound, video,
script or execute a binary object, use PLAY:
Syntax:
PLAY <Component> <Registry
member>
- To show a hidden component,
use SHOW:
Syntax:
SHOW <Component>
- To play a sound or video
without suspending the execution of the script use START.
Syntax:
START <Component>
- To stop the script use STOP.
Syntax:
STOP
- To display a particular text
in a text component use TEXTOUT.
Syntax:
TEXTOUT
<Component> ''<Text>''
- To change the display status
of a component (from hide to show, or from show to hide),
use TOGGLE.
Syntax:
TOGGLE
<Component>
- To translate a text component
to the currently selected translation language choose
TRANSLATE (see Tools : Options : Language for
interface and collection translation options).
Syntax:
TRANSLAT
<Component>
- To play user recorded sound
in the sound component use UPLAY (to display the recorder
panel in sound components check Recorder on sound component
pop-up menu)
Syntax:
UPLAY <Component>
- To suspend the execution of a
script for a number of milliseconds use WAIT.
Syntax:
WAIT <Milliseconds>
- To suspend the execution of a
script until a given frame is displayed in a video
sequence, or until a given position is reached in a sound
track, use WAITFRAME with the frame or position as an
argument.
Syntax:
WAITFRAME
<Component> <Frame>
- To suspend the execution of a
script until a grade is provided (e.g. in Drag&Match
exercises or Point&Click exercises) use WAITGRADE.
Syntax:
WAITGRADE
***