How to refer to a named object wihout knowing in which subpatcher it is?
I want to fill a coll using a script and the .message method.
It functions as long as the referred coll is in the same subpatcher
as the js object. As I want to access the coll's data with several js
objects in several subpatchers I put an instance of my coll in each
subpatcher and give a different scripting name to each instance.
As I would prefer not to give a different scripting name for each
instance of my coll I wonder whether it is possible to refer to a
coll which is not in the same subpatcher as the js object and without
knowing its place wihin the patcher+subpatchers architecture?
Thank you in advance.
Roald Baudoux
On 7 sept. 08, at 22:36, Roald Baudoux wrote:
> Thanks for the code but it appears a little bit obscure to me.
>
> If I undestand it correctly I need to call the iterationmethod
> function first then the mess function.
>
> However, how do I get the MyObj variable? If I try to define it with
> var MyObj = new Maxobj and then call the iterationmethod function it
> doesn't work.
MyObj is the MaxObject passed as argument to the iterative function by
the applydeep method. Here's a tested version with more comments which
works fine. Let me know if that's not clear enough.
Best,
ej
var theFirstCollIWasLookingFor; // variable which stores the "address"
to your coll object
function findthecoll()
{
this.patcher.applydeep(iterationmethod); // iterate through the
objects (recursively, in supbatchers too)
}
findthecoll.local = 1;
function iterationmethod(MyObj) // the iteration method (triggered by
findthecoll)
{
if (MyObj.maxclass == "coll" && MyObj.varname == "toto") { // if
the object is a coll, and it have "toto" as scripting name
theFirstCollIWasLookingFor = MyObj; // store a reference
to your MaxObject in theFirstCollIWasLookingFor variable
return false; // get out, cause now you have one.
}
return true; // this is required to continue the iteration
}
iterationmethod.local = 1;
function anything() // when you send any message to the object, it
will forward it to the coll object
{
var tmp = arrayfromargs(messagename, arguments);
if (theFirstCollIWasLookingFor != undefined) { // if the variable
is not empty it it means that we already have one coll found
theFirstCollIWasLookingFor.message(tmp);
} else { // no coll found yet, so we need to find it
findthecoll(); // finding the coll object
mess(tmp); // send the message to the found call
}
}
What do the blank replies mean?
they are lost, faded away by the rips of times
that is when the google terrorism suspicion detection deletes a post from beeing too radical.