Page 1 of 1

setexpression of a variable?

Posted: 06 Feb 2013 20:45
by shanekoss
Hi - is this possible?

I am creating object names dynamically with the use of arraytostring, which normal works fine, but in this case - I want to be able to change global variables, but not sure how to go about it.

the variable is

LOOP1.lp

of course this works:

LOOP1.lp=1;

but i can't use that structure since i am repeating the function with this attempt assuming the expression name is the name of the global variable - in this case 'lp'

ll has been defined elsewhere (numerical version of LOOP)

decl i,ar,size=9;
for(i=0;i<size;i++){
ar=arraytostring({ll,i+49});
setattribute(findobject(ar),'lp',i+1);
}

any ideas?

thanks!

Re: setexpression of a variable?

Posted: 09 Feb 2013 12:31
by shanekoss
lil bump here - is it possible to use setexpression or some other method to affect global variables?

thanks!

Re: setexpression of a variable?

Posted: 09 Feb 2013 13:39
by Macciza
Hi Shane
Sometimes it hard to see a tree for the forest . . .

Try setexpression because it is an expression not an attribute that you are changing
And then it should work, I think . . .

Cheers
MM

Re: setexpression of a variable?

Posted: 25 May 2013 23:19
by shanekoss
hi - thanks.

question though - if it is a created expression - what would the 'name' be?

normally you could say:

setexpression(Fader,'x',1);

but in this case - i don't know what the 'x' value would be.

I made a global expression:

Test=0

If i write into a script

Test=1;

that changes it, but how could i address the same expression with setexpression?

thanks!

shane

Re: setexpression of a variable?

Posted: 26 May 2013 22:40
by nick_liine
Hi guys,

It's not possible to use setexpression() for a global variable. A potential solution for your case would be to use a single variable as an array, instead of lots of vars with numbers in their names and calls to arraytostring.

Best,
Nicolas

Re: setexpression of a variable?

Posted: 28 May 2013 06:21
by Softcore
Or you could just add a pad or something, take it out of the screen (positioned in negative x or y), name it "global", create the expression 'test' in that pad and then use setexpression(global, 'test' value), couldnt you?