Forums > Javascript

Javascript documentation.

May 20, 2008 | 6:42 am

The see also section of the javascript tutorials do not point to the
other tutorials, and I haven’t found any link to a javascript reference
for max 5 anywhere.

I wanted to find out about the patcher method "newobject" for scripting,
and unfortunately the example in the old JavascriptInMax pdf has an
example which doesn’t help too much…

The tutorial 2 creates ctlins which are too big, but how to create them
with a proper width? It points to the newobject method, but I can’t find
any reference how to use it in Max 5…

But (not) learning the patcher methods by trial and error isn’t too much
fun… I usually come along well with examples I can modify…

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


May 20, 2008 | 7:20 am

On 20 mai 08, at 08:42, Stefan Tiedje wrote:

> I wanted to find out about the patcher method "newobject" for
> scripting, and unfortunately the example in the old JavascriptInMax
> pdf has an example which doesn’t help too much…

You can use the send message. Then the syntax will be the same as the
one demonstrate in the "Making new objects" subpatcher of the
thispatcher help file. For instance:

this.patcher.message("script", "newobject", "comment",
"@varname", i + "_unitlabel",
"@presentation_rect", 280, y, 130, 20,
"@patching_rect", 280, y, 130, 20,
"@presentation", 1,
"@text", ppList[i].unit,
"@fixwidth", 1
);

ej


May 20, 2008 | 9:04 am

Emmanuel Jourdan schrieb:
> You can use the send message. Then the syntax will be the same as the
> one demonstrate in the "Making new objects" subpatcher of the
> thispatcher help file. For instance:

I tried this for instance:

this.patcher.message("script", "newobject", "newobj",
"@varname", "ctlobj[" + k + "]",
"@patching_rect", 250+k*30, 50, 280+k*30, 70,
"@text", ctlin, k+1
);

And it complained:

js: autosurface.js: Javascript ReferenceError: ctlin is not defined…

The js reference claims: "Any message to a patcher that you can send in
Max (via the thispatcher object) you can send in Javascript in js."

How do I send the size message: "script size var1 100 15" like in the
example to thispatcher?

I tried

this.patcher.size(controlin[k], 27, 15);

but it didn’t work. Maybe because the the object doesn’t have a
scripting name yet…

I go through this, because I want to see if scripting within javascript
is easier than with thispatcher, but it seems much more complicated… ;-)

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


May 20, 2008 | 12:34 pm

On 20 mai 08, at 11:04, Stefan Tiedje wrote:

> Emmanuel Jourdan schrieb:
>> You can use the send message. Then the syntax will be the same as
>> the one demonstrate in the "Making new objects" subpatcher of the
>> thispatcher help file. For instance:
>
> I tried this for instance:
>
> this.patcher.message("script", "newobject", "newobj",
> "@varname", "ctlobj[" + k + "]",
> "@patching_rect", 250+k*30, 50, 280+k*30, 70,
> "@text", ctlin, k+1
> );
>
> And it complained:
>
> js: autosurface.js: Javascript ReferenceError: ctlin is not defined…

it should proabably be:

"@text", "ctlin " + k+1

> The js reference claims: "Any message to a patcher that you can send
> in Max (via the thispatcher object) you can send in Javascript in js."
>
> How do I send the size message: "script size var1 100 15" like in
> the example to thispatcher?
>
> I tried
>
> this.patcher.size(controlin[k], 27, 15);
>
> but it didn’t work. Maybe because the the object doesn’t have a
> scripting name yet…

Then you need to name it:

controlin[k].varname = "ctrlin_" + k;
this.patcher.message("script", "size", "ctrlin_" + k, 100, 15);

You should also be able to use the rect property of a MaxObject.

ej


May 20, 2008 | 1:42 pm

Emmanuel Jourdan schrieb:
> it should proabably be:
>
> "@text", "ctlin " + k+1

Thanks, that did the trick (after I put (k+1) in brackets). Does that
mean that these attributes have a fixed number of arguments? and @text
will only take one single argument?
Or is there an alternative notation also possible…

I never know when I have to combine things with "+" or when I have to
separate them with a comma. In Max I don’t have to care about this but
js is picky… ;-)

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


May 20, 2008 | 2:20 pm

On 20 mai 08, at 15:42, Stefan Tiedje wrote:

> Thanks, that did the trick (after I put (k+1) in brackets). Does
> that mean that these attributes have a fixed number of arguments?
> and @text will only take one single argument?
> Or is there an alternative notation also possible…

It depends on the attribute. For instance bordercolor would take 4
floats, here text takes only one string. You can find that easily by
"looking at the object as text" (copy of the object, paste in a text
file).

ej


Viewing 6 posts - 1 through 6 (of 6 total)