LiveCode was built on the principle that virtually anything that can be done through the user interface--the menus, property palettes, and other tools--can be accomplished through scripting. For instance, instead of using the Tools Palette to create a new button, you can simply enter this command in the message box:
create button "myButton"
A button with the name indicated will be created on the current card. You may be thinking, "But it's faster to just point and click to create objects." And you may be right. However, the implication of this ability to do anything via scripting is that you can write scripts that will automatically modify your stack under whatever conditions you stipulate. For example, you might want to script the creation of new cards for each new question in a quiz, and then have a script that deletes these cards when the quiz is over. This ability to script the way your stacks look and behave gives you as the developer total control over everything that happens in your stack.
As an example of the scriptable architecture let's look at the color properties of objects in LiveCode. For example, you might want to change the background color of a field if certain conditions apply. You could script the change by changing the backgroundColor property of the field, like this:
set the backgroundColor of fld "fancyField" to colorReference
A color reference can have one of three forms:
blue
or red
. (A complete
list can be obtained using the colorNames( )
function.)Here is a list of LiveCode terms that affect color:
TERM | TYPE | Synonyms | Description |
accentColor |
property |
|
The |
answer color |
command |
The answer color command displays
the operating system's standard color-selection dialog box. |
|
backgroundColor |
property |
backColor, secondColor, fillBack | The backgroundColor property
specifies an object's background color. |
borderColor |
property |
fourthColor, markerFillColor | The borderColor
property specifies the color of an object's border. |
bottomColor |
property |
sixthColor | The bottomColor
property specifies the color of a three-D object's lowered edge. |
brushColor |
property |
The brushColor
property specifies the color used to paint and to fill shapes in an image. |
|
colorMap |
property |
The colorMap property
lists the colors in the current color table. |
|
colorNames |
function |
The colorNames
function returns a list of the color names you can use in LiveCode. |
|
colors |
property |
The colors property
specifies all the colors of an object, in shorthand form. |
|
colorWorld |
property |
The colorWorld
property reports whether the screen is set to use color. |
|
focusColor |
property |
eighthColor | The focusColor
property specifies the color of the outline around the active control or
the field with the insertion point. |
foregroundColor |
property |
foreColor, firstColor, textColor, thumbColor, fillFore, penFore | The foregroundColor
property specifies the color of object text and borders. |
hiliteColor |
property |
markerColor, thirdColor | The hiliteColor
property specifies the color of the background when an object, or text in
an object, is highlighted. |
linkColor |
property |
The linkColor property
specifies the color of grouped text. |
|
linkHiliteColor |
property |
The linkHiliteColor
property specifies the color of grouped text that is being clicked. |
|
linkVisitedColor |
property |
The linkVisitedColor
property specifies the color of grouped text that has been clicked during
the current session. |
|
lock colorMap |
command |
The lock colorMap
command sets the lockColorMap property to true, preventing
the screen from being redrawn when the color table is changed. |
|
lockColorMap |
property |
The lockColormap
property specifies whether changes to the color table cause the screen to
be redrawn with the new color table. |
|
mouseColor |
property |
The mouseColor
function returns the color of the pixel that the mouse pointer is over. |
|
penColor |
property |
The penColor property
specifies the color used for drawing with the paint tools. |
|
printColors |
property |
The printColors
property specifies whether objects are printed in color or black and white. |
|
privateColors |
property |
The privateColors
property specifies whether LiveCode uses its own color table or the system
color table on Unix systems. |
|
remapColor |
property |
The remapColor
property has no effect, and is included in LiveCode for compatibility
with imported SuperCard projects. |
|
screenColors |
function |
The screenColors
function returns the number of colors the screen can display. |
|
selectionHandleColor |
property |
The selectionHandlerColor
property specifies the color of the handle boxes used to resize a selected
object. |
|
shadowColor |
property |
seventhColor | The shadowColor
property specifies the color of an object's drop shadow or the background
of a scrollbar. |
systemColorSelector |
property |
The systemColorSelector
property is not implemented and is reserved. |
|
topColor |
property |
fifthColor | The topColor property
specifies the color of a three-D object's raised edge. |
unlock colorMap |
command |
The unlock colorMap
command sets the lockColorMap property to false, causing the
screen to be redrawn with the new color table every time the color table
is changed. |
There are other elements of LiveCode that don't deal directly with color, but are related. In particular, there is a whole set of properties that specify patterns that are used in various parts of objects. Here are some other interesting elements:
TERM |
TYPE |
Synonyms | Description |
blend |
keyword |
|
The |
blendLevel |
property |
The blendLevel property specifies
the degree of transparency of an image whose ink property is set to blend. |
|
ink |
property |
The ink property specifies
the kind of transparency an object is drawn with. |