Skip to main content
johnt53984649
Inspiring
September 30, 2018
Answered

Check if Layer Has Specific Effect Applied To It

  • September 30, 2018
  • 1 reply
  • 2309 views

In extendscript, how can I check if a layer has a specific effect applied to it?  For example, suppose I want to check if a given layer has the "motion tile" effect applied to it.  Essentially, this is the pseudocode of what I want:

var layer_number = 1;

if (app.project.item(1).layer(layer_number) has motion tile applied)

{

  alert("It does!");

}

else

{

  add motion tile effect to app.project.item(1).layer(layer_number);

}

Can somebody please help me translate this pseudocode into real code that extendscript will recognize for After Effects?  Thanks.

This topic has been closed for replies.
Correct answer Dan Ebberts

Something like this:

var myLayer = app.project.activeItem.layer(1);

var hasEffect = false;

for (var i = 1; i <= myLayer.property("Effects").numProperties; i++){

  if (myLayer.property("Effects").property(i).matchName == "ADBE Tile"){

    alert ("It does!");

    hasEffect = true;

    break;

  }

}

if (! hasEffect){

  myLayer.property("Effects").addProperty("ADBE Tile");

}

Dan

1 reply

Dan Ebberts
Community Expert
Dan EbbertsCommunity ExpertCorrect answer
Community Expert
September 30, 2018

Something like this:

var myLayer = app.project.activeItem.layer(1);

var hasEffect = false;

for (var i = 1; i <= myLayer.property("Effects").numProperties; i++){

  if (myLayer.property("Effects").property(i).matchName == "ADBE Tile"){

    alert ("It does!");

    hasEffect = true;

    break;

  }

}

if (! hasEffect){

  myLayer.property("Effects").addProperty("ADBE Tile");

}

Dan

johnt53984649
Inspiring
October 1, 2018

Perfect, thank you very much!