js

Execute Javascript

Description

The js object exposes the core Javascript language, and some Max specific extensions for use in Max patches. Note that this does not include the traditional web browser specific extensions that are often associated with Javascript. The js object can either be instantiated with a javascript filename, followed by arguments which are addressable by the javascript file using the jsarguments[] array, or the js object may be instantiated with numerical arguments to specify the number of outlets and inlets respectively. The default number of outlets and inlets are both 1.

Arguments

Name Type Opt Description
filename symbol opt Specifies the name of a text file to be used as the Javascript source. If no argument is specified, it will not initially have any Javascript associated with it. You can still open a text window and edit and save the Javascript source, but unless you recreate the object with the saved source filename as an argument, the file will not be used when a patch containing the js object is loaded.
inlet/outlet-initialization int opt If no filename is present as an argument, the number of inlets and outlets is specified. If one int argument is present, the number of desired outlets is specified. If two int arguments are present, the first number specifies the number of outlets and the second number specifies the number of inlets.
jsarguments symbol opt Following the optional filename or number of outlets and inlets, any symbols or numbers can be entered that will be assigned to the Javascript variable jsarguments. jsarguments[0] is the filename entered, and jsarguments[1] is the first typed-in argument following the filename. The Javascript expression jsarguments.length will be one more than the number of typed-in arguments

Messages

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.
autowatch filewatch-flag (1 or 0) [int]
The message 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 js object will notice. autowatch 0 turns off file watching.
compile filename [symbol]
Recompiles the current file.
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.
(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.
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.
loadbang Invokes the function named loadbang if defined. This message is sent when the file is loaded.
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.
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.

Information for box attributes common to all objects

methodnote

Output

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

Examples

Two js objects instantiated with different arguments the Javascript code creates the objects with different numbers of outlets based on the arguments

See Also

Name Description
jstrigger Execute Javascript instructions sequentially
jsui Javascript user interface and OpenGL graphics
mxj Java in Max
Max JS Tutorial 1: Basic JavaScript Max JS Tutorial 1: Basic JavaScript
Max JS Tutorial 2: JavaScript Scripting Max JS Tutorial 2: JavaScript Scripting
Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals
Tutorial 45: Introduction to using Jitter within JavaScript Tutorial 45: Introduction to using Jitter within JavaScript
Tutorial 46: Manipulating Matrix Data using JavaScript Tutorial 46: Manipulating Matrix Data using JavaScript
Tutorial 47: Using Jitter Object Callbacks in JavaScript Tutorial 47: Using Jitter Object Callbacks in JavaScript