Javascript user interface and OpenGL graphics


The jsui object is a general purpose user interface object driven by javascript. There are a number of templates already built to use (some of which are shown below). While the patcher is in edit mode, you can ctrl-click (mac) or right-click (pc) to bring up the contextual menu which will let you view and edit the currently loaded javascript file, or select one of the template files from jsui-library. If the javascript file also has a help file associated with it (as do all of the template objects contained in this patch), the associated help file will be loaded instead of jsui.maxhelp. The inspector lets you set the javascript file, javascript arguments, size, border flag, and disable full scene anti-aliasing (fsaa).

At the present time, mouse position and object redrawing will only be reported correctly in the jsui object if the patching and Presentation mode sizes of the object are the same.




bang Invokes the function named bang if defined.
int user-defined [int]
Invokes the function named msg_int if defined.
float user-defined [float]
Invokes the function named msg_float if defined.
list user-defined [list]
Performs the same as anything.
anything user-defined [list]
Invokes the function with the message name, assigning the message arguments to the arguments to the function. For example, if the object has a function named xyz defined, the message xyz 1 2 3 would invoke the xyz function with arguments 1 2 and 3.
(drag) When a file is dragged from the Max 5 File Browser to a jsui object, the file is loaded and executed.
autowatch filewatch-flag (1 or 0) [int]
The word autowatch, followed by a 1, turns on file watching for the Javascript source file. When file watching is on, the file is recompiled automatically when it is modified. This allows you to use an external editor for your Javascript file. When you save the file, the jsui object will notice. autowatch 0 turns off file watching.
compile filename [symbol]
Recompiles the current file. If followed by a symbol, will load, compile, and set the currently loaded Javascript file to be the Javascript file specified by the symbol argument
delprop propertyname [symbol]
The word delprop, followed by a name, deletes the named property.
editfontsize font-size [int]
Changes the font-size of the text used in the editing window which contains the object's Javascript source file.
getprop propertyname [symbol]
The word getprop, followed by a name, outputs the value of the property name stored in the object out the left outlet.
jsargs arguments [list]
Sets the current Javascript arguments to any following message arguments.
jsfile filename [symbol]
The word jsfile, followed by a symbol , loads, compiles, and sets the currently loaded Javascript file to be the Javascript file specified by the symbol argument.
loadbang Invokes the function named loadbang if defined. This message is sent when the file is loaded.
(mouse) Double-clicking on a js object opens a text window where the object's Javascript source file can be edited. When the text window is saved, the text is compiled as the object's script.
open Opens the text window where the object's Javascript source file can be edited.
setprop property and settings [list]
The word setprop, followed by name and one or more names or numbers, sets the named property to what follows the name. For example, after sending setprop xyz 1 2 3 to a js object. the xyz property would have a value of the list 1 2 3.
size width [int]
height [int]
The word size, followed by two int arguments, sets the width and height of the jsui object.
statemessage message-names [list]
Allows for the testing of messages passed to functions within the Javascript source file.
wclose Closes the text window where the object's Javascript source file is edited.


Name Type g/s Description
border int
Toggles the drawing of a border around the jsui object. The default is 1 (draw border).
filename symbol
The word filename, followed by a symbol that specifies a pathname, designates the Javascript file to be loaded.
jsarguments atom
Specifies any arguments to be passed to the Javascript code contained in the jsui object.
nofsaa int
Toggles the drawing of the object without full-screen antialiasing. The default is 0 (fsaa on).

Information for box attributes common to all objects


anything: Numbers, lists, or symbols are sent out the jsui object's outlets when the Javascript code executing within the jsui object invokes the outlet function.


A simple dial with logic and drawing defined in Javascript

See Also

Name Description
js Execute Javascript
jstrigger Execute Javascript instructions sequentially
mxj Java in Max
Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals