Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions expression breakdown

  • expression breakdown

    Posted by Dom Brooks on May 17, 2018 at 9:31 am

    Would anyone be kind enough to explain to me how this expression works?

    I’m pretty new with expressions but have a laymans understanding.

    I’m trying to learn and want to understand why certain lines effect certain parameters.

    This is an expression by JR canest that allows a shape layer to retain it’s original scale whilst attached to a parent object’s scale value.

    i understand the first two lines are establishing parameters s being the scale of the object in question and ps establishing the parents scale value

    then i get a little lost.

    any help would be great

    s=[];
    ps=parent.transform.scale.value;
    for(i=0;i<ps.length;i++){
    s[i]=value[i]*100/ps[i];
    }
    s

    Sam Catt replied 8 years ago 2 Members · 1 Reply
  • 1 Reply
  • Sam Catt

    May 17, 2018 at 12:17 pm

    so without knowing what these are exactly or how they are effecting the object I can’t tell you quite the results. But, I can explain whats going on.

    so

    s = []; //this is setting a variable for s, to be equal to an iterator

    ps=parent.transform.scale.value; //this sets this layers parents scale value to ps

    for(i=0; i < ps.length; i++){
    s[i]=value[i]*100/ps[i];
    }

    this is a little more complex, but basically “for” is a loop inside javascript. This loop broken down is

    for //do loop in situation ( //bracket tells for loop to look inside here for the situation
    i=0; // i is a variable, and it equals 0
    i < ps.length; // if i is less than ps.length ( the value number for ps )
    *remember ps = parent.transform.scale.value; so it just add .length which calls for the number value*
    **in full its parent.transform.scale.value.length;**
    i++) // i++ means whatever i is, if before situation is still matching then add one to itself //bracket closes the for loop situation

    { //opens the for loop to allow you to apply something to every instance of the for loop
    *in the case above if the value was 50, it would do the for loop 50 times until it stops*

    s[i]=value[i]*100/ps[i]; //in this case it’s saying s[i] ^^ we saw i changes depending on the ‘ps.length’ and then calcutes it throughout

    s //outputs s

    so lets make an example for you:

    if the value of scale is 2

    s=[];
    ps=parent.transform.scale.value;

    for(i=0;i<ps.length;i++){
    s[i]=value[i]*100/ps[i];
    }

    ( loop broken down )

    s[0]=value[0]*100/ps[0];
    s[1]=value[1]*100/ps[1];
    s[2]=value[2]*100/ps[2];

    ( end loop )

    s

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy