Texture to jit.gl.multiple using javascript


    Nov 11 2010 | 12:08 am
    Hi, I'm trying to assign a texture to jit.gl.multiple using javascript but with no result. Everything is good if i write in the object @texture "texturename" but not using javascript.
    The javascript code is:
    outlets = 2;
    var pre=1;
    var fois=1;
    var iter=1;
    f1=0; f2=0; f3=0; f4=0
    p = this.patcher;
    // OTTIENI GLI OGGETTI NELLA PATCH
    var molti = p.getnamed("moltiplicatore");
    if (molti == null){
    post("couldnt find molti objectn");
    }else{
    post("ok molti trovato");
    }
    var texture = new JitterObject("jit.gl.texture","foo");
    texture.name = "three";
    texture.file = "logo_portogallo.jpg";
    molti.texture = "three"; ///// IS IT WRONG ?!?!?
    In the attach you can find the patch with image for texture
    Thank for help ;)
    micron

    • Nov 11 2010 | 12:15 am
      Unfortunately, for legacy reasons, the Maxobj works differently than JitterObject w/r/t attribute setters. p.getnamed() returns an instance of Maxobj. So you must set the attribute by calling it like a function, or use the message function.
      i.e. molti.texture("three"); or molti.message("texture","three");
    • Nov 12 2010 | 12:44 am
      WOW Thank you so much!
    • Nov 17 2010 | 12:40 am
      Ok if i use this all is ok
      molti.message("texture","one", "two", "three");
      but i'm trying to assign texture reading inside a folder so i have to create the message using code,
      now i'm using this:
      for (var i=0; i
      var textures = new JitterObject("jit.gl.texture","fooz");
      textures.name = i.toString();
      textures.file = immagini[i];
      elencotexture = """ + textures.name + """ + "," + elencotexture;
      post(elencotexture + "n");// HERE WITHOUT SLASHES
      molti.message("texture" , elencotexture); // HERE WITH SLASHES
      }
      but i get:
      "9","8","7","6","5","4","3","2","1","0",
      and i would like:
      "9" , "8", "7",
      like the old manual message
      molti.message("texture","one", "two", "three");
      i try with a function to stripslashes but no resul
      thanks for any suggestions
      micron
    • Nov 17 2010 | 2:23 am
      Sounds like you want to use Function.apply. Instead of concatenating all of the names together with +, shove them in an array. Then: molti.message.apply(molti, array_of_arguments)
      (btw, you can use backquotes, on the same key with ~ on us keyboards, to get nicely formatted code on the forum).
      /brian