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