Script components make it possible to use simple script
language to operate on components of a given element (i.e.
to display components, change them, animate them, use them in tests, etc.). This makes it
possible to create interactive presentations, animation, video subtitling, drag-and-drop
tests, hyperlinks to the Internet, e-mail links, 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 number 3 (see below), 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 multimedia collections shipped
with SuperMemo, e.g. Cross Country, Advanced English, Video
English, Easy English, etc. (samples
of these can be found on SuperDemo CD-ROM or in MegaMix
99). Alternatively you can download a free collection Advanced Tests with
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 dismiss the currently displayed element use DISMISS
Syntax: DISMISS
- 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 simulate the learning procedure (as if the user pressed
the button Learn) use LEARN
Syntax: LEARN
- To switch SuperMemo to a selected difficulty level use LEVEL
Syntax: LEVEL BEGINNER|BASIC|MIDDLE|PROFESSIONAL
- To make the users send an e-mail use MAILTO
Syntax: MAILTO
<Address> <Subject> <Body text> <Name>
- To display a message or warning use MESSAGE
Syntax: MESSAGE
<Text>
- To set SuperMemo in one of its access modes (Read-Only,
Learn-Only or Full Access), use MODE
Syntax: MODE
READ|LEARN|FULL
- To move a component to a new location use MOVE:
Syntax: MOVE
<Component> <X> <Y>
- To show or hide the navigation toolbar of the element
window, use NAVIGATION
Syntax: NAVIGATION
ON|OFF
- 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 show or hide the status bar use STATUS
Syntax: STATUS ON|OFF
- To stop the script use STOP:
Syntax: STOP
- To display a particular text in a text component use
TEXTOUT:
Syntax: TEXTOUT
<Component> '<Text>'
- To open the Question of the Day dialog box use TIPS:
Syntax: TIPS
- 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: TRANSLATE
<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 make SuperMemo display a selected page from the world
wide web, use URL
Syntax: URL http://<web
address>
- 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