class Maxobj

A JavaScript representation of a Max object in a patcher.

Perhaps the most powerful thing about a Maxobj is that you can send any message to a Maxobj that you can send to a Max object. For example, if you had a number box Maxobj and you wanted to set its value to 23 without outputting the value, you could do this:

n.set(23);

Note that certain words such as int, float, and delete are keywords in JavaScript, and you will need to use either array notation or the message method for such reserved words. For example:

n.message("int", 23);
n["int"](23);

Properties

background boolean

Whether the object is in the patchers background layer

canhilite boolean read-only

Whether the object can be selected for text entry

A number box would be one example of an object which would return true

colorindex number

This API is deprecated

If the object is set to use one of the standard 16 colors, the index of the color

hidden boolean

Whether the object is hidden in a locked patcher

ignoreclick boolean

Whether the object ignores clicks

js object read-only

If the Maxobj refers to an object that is a js Max class, this returns the associated jsthis object

maxclass string read-only

The Max class

This is different from the JavaScript class ("Maxobj") which is accessed via the standard class property.

nextobject Maxobj | undefined read-only

The next object in the patcher's list of objects, otherwise nil

patchcords object read-only

An object containing two arrays, inputs, and outputs, each of which may contain MaxobjConnection objects

patcher Patcher read-only

The Patcher object that contains the Maxobj

rect [number, number, number, number]

The location of an object in a patcher (left, top, right, bottom)

When the object's rectangle is changed, it will move on screen if it's visible.

selected boolean read-only

Whether the object is selected in an unlocked patcher window

valid boolean read-only

Whether the Maxobj refers to a valid Max object

A Maxobj could eventually refer to an object that no longer exists if the underlying Max object is freed. The valid property can be used to test for this condition.

varname string

The patcher-specific name of the object as set in the inspector or via the Object Name... menu option

Methods

getattr

Get the value of an attribute

getattr(attrName: string): number | number[] | string;
NameTypeDescription
attrNamestringthe attribute name
Return Valuenumber | number[] | string

getattrnames

Get all available attributes for the object

getattrnames(): string[];
NameTypeDescription
Return Valuestring[]

getboxattr

Get the value of the object's box

getboxattr(attrName: string): number | number[] | string;
NameTypeDescription
attrNamestringthe attribute name
Return Valuenumber | number[] | string

getboxattrnames

Get the names of all available attributes for the object's box

getboxattrnames(): string[];
NameTypeDescription
Return Valuestring[]

help

Open a help file describing an object, if it exists

help(): void;

message

Send the object a message with any additional arguments

This is useful for sending messages to objects which dynamically dispatch messages with the anything message like js, jsui, lcd, and others.

message(message: string, ...args: any[]): void;
NameTypeDescription
messagestringthe message to send
argsany[]any arguments for the message

setattr

Set the value of an attribute

setattr(attrName: string, value: number | number[] | string): void;
NameTypeDescription
attrNamestringthe attribute name
valuenumber | number[] | stringthe new attribute value

setboxattr

Set the value of a box attribute

setboxattr(attrName: string, value: number | number[] | string): void;
NameTypeDescription
attrNamestringthe attribute name
valuenumber | number[] | stringthe new attribute value

subpatcher

If the object contains a patcher, returns a Patcher, otherwise nil

subpatcher(index?: number): Patcher | undefined;
NameTypeDescription
optional indexnumberan instance number (only used with poly~)
Return ValuePatcher | undefined

understands

Get whether the object has an entry in its message list for a given string

If the entry is not a message that can be sent by a user within Max (i.e. it's a C-level "untyped" message), false is returned. This doesn't work for messages which are dynamically dispatched with the anything message, as is the case for instances of js, jsui, lcd, and others.

understands(message: string): boolean;
NameTypeDescription
messagestringan object message
Return Valueboolean