Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions How to reference a layer with a certain checkbox effect ticked

  • How to reference a layer with a certain checkbox effect ticked

    Posted by Sami Bayley on November 30, 2021 at 11:47 am

    How would I go about doing this? I need to take position property from a certain layer with a checkbox effect ticked. But how do I reference this layer?

    This is my current solution, surely there is a better option? It’s such an awful work around as I have to have the checkbox effect applied to every layer otherwise after effects gives me the error “missing effect”:

    i = thisComp.layer(index+1).effect("First Word")("Checkbox");
    i2 = thisComp.layer(index+2).effect("First Word")("Checkbox");
    i3 = thisComp.layer(index+3).effect("First Word")("Checkbox");
    i4 = thisComp.layer(index+4).effect("First Word")("Checkbox");
    i5 = thisComp.layer(index+5).effect("First Word")("Checkbox");
    i6 = thisComp.layer(index+6).effect("First Word")("Checkbox");
    i7 = thisComp.layer(index+7).effect("First Word")("Checkbox");
    i8 = thisComp.layer(index+8).effect("First Word")("Checkbox");
    i9 = thisComp.layer(index+9).effect("First Word")("Checkbox");
    i10 = thisComp.layer(index+10).effect("First Word")("Checkbox");
    i11 = thisComp.layer(index+11).effect("First Word")("Checkbox");
    i12 = thisComp.layer(index+12).effect("First Word")("Checkbox");
    i13 = thisComp.layer(index+13).effect("First Word")("Checkbox");
    i14 = thisComp.layer(index+14).effect("First Word")("Checkbox");
    if (i == 1 ) {1}
    else if (i == 1 ) {1}
    else if (i2 == 1 ) {2}
    else if (i3 == 1 ) {3}
    else if (i4 == 1 ) {4}
    else if (i5 == 1 ) {5}
    else if (i6 == 1 ) {6}
    else if (i7 == 1 ) {7}
    else if (i8 == 1 ) {8}
    else if (i9 == 1 ) {9}
    else if (i10 == 1 ) {10}
    else if (i11 == 1 ) {11}
    else if (i12 == 1 ) {12}
    else if (i13 == 1 ) {13}
    else if (i14 == 1 ) {14}
    else {0}
    Dan Ebberts replied 4 years, 5 months ago 2 Members · 1 Reply
  • 1 Reply
  • Dan Ebberts

    November 30, 2021 at 5:43 pm

    Something like this would be more compact, I think:

    n = 14;

    result = 0;

    for (i = 1; i <= n; i++){

    if (thisComp.layer(index+i).effect("First Word")("Checkbox").value){

    result = i;

    break;

    }

    }

    result

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