-
Notifications
You must be signed in to change notification settings - Fork 9
Isolate Layers With the Shy Setting
Fabian Morón Zirfas edited this page Jun 13, 2025
·
3 revisions
An After Effects scripts panel that toggles shy states on layers
/**
* An After Effects scripts panel that toggles shy states on layers
*
*
*/
// basic panel
run(thisObj);
function run(thisObj) {
// this is global
data = {
refreshing: false,
layerlist: [],
selectedLayer: {
index: 0,
},
};
/// THIS WILL CHECK IF PANEL IS DOCKABLE OR FLAOTING WINDOW
var win = buildUI(thisObj);
if (win !== null && win instanceof Window) {
win.center();
win.show();
} // end if win null and not a instance of window
function buildUI(thisObj) {
var win =
thisObj instanceof Panel
? thisObj
: new Window("palette", "PANEL LABEL", [0, 0, 150, 260], {
resizeable: true,
name: "aPanel",
});
if (win !== null) {
var H = 25; // the height
var W = 30; // the width
var G = 5; // the gutter
var x = G;
var y = G;
win.refresh = win.add("button", [x, y, x + W * 3, y + H], "refresh");
x = x + W * 3 + G;
win.reset = win.add("button", [x, y, x + W * 3, y + H], "reset");
x = G;
y += H + G;
win.ddlist = win.add(
"dropdownlist",
[x, y, x + W * 6 + G, y + H],
data.layerlist,
);
win.ddlist.selection = 0;
win.reset.onClick = function () {
reset();
};
win.refresh.onClick = function () {
var curComp = app.project.activeItem;
if (!curComp || !(curComp instanceof CompItem)) {
alert("please select a comp");
return;
}
data.refreshing = true;
data.layerlist = [];
win.ddlist.removeAll();
for (var i = 1; i < curComp.numLayers + 1; i++) {
data.layerlist.push({
name: curComp.layers[i].name,
index: curComp.layers[i].index,
});
win.ddlist.add(
"item",
String(curComp.layers[i].index + ": " + curComp.layers[i].name),
);
}
win.ddlist.selection = 0;
data.refreshing = false;
};
win.ddlist.onChange = function () {
if (data.refreshing === false) {
$.writeln(win.ddlist.selection.index + 1);
data.selectedLayer.index = win.ddlist.selection.index + 1;
}
isolate();
};
}
return win;
}
function reset() {
var curComp = app.project.activeItem;
if (!curComp || !(curComp instanceof CompItem)) {
alert("please select a comp");
return;
}
for (var i = 1; i < curComp.numLayers + 1; i++) {
curComp.layers[i].shy = false;
}
curComp.hideShyLayers = false;
}
function isolate() {
var curComp = app.project.activeItem;
if (!curComp || !(curComp instanceof CompItem)) {
alert("please select a comp");
return;
}
app.beginUndoGroup("something");
for (var i = 1; i < curComp.numLayers + 1; i++) {
if (curComp.layers[i].index !== data.selectedLayer.index) {
curComp.layers[i].shy = true;
} else {
curComp.layers[i].shy = false;
}
}
if (data.refreshing === false) curComp.hideShyLayers = true;
app.endUndoGroup();
}
}This wiki is mostly maintained by:
ff6347
Thanks to:
- JohnDarnell for fixing lots of typos.
- jsp for fixing lots of typos.
- ltfschoen for fixing typos.
- wridgers for adding more links.
- EugenTepin for several improvements.
- vamitul for improvements.
- abandonedbywolves for adding an example.
- Travis Weston
- Andy Dayton
Thanks to the students from my seminars for asking all those questions and making me start this wiki.
- adinaradke
- AnitaMei
- ce0311
- coerv
- felixharle
- FerdinandP
- Flave
- marche
- monkian
- natael
- OliverMatelowski
- PDXIII
- praktischend
- schlompf
- skaim
You are awesome.
- Arrays
- Classes
- Comments
- Conditionals
- Functions
- Inspect Properties
- Loops
- Objects
- Output And Interaction
- Recursive Functions
- Inspect Properties
- Variables And Operations
- Extended JavaScript Guide
- Bridge Talk
- Create And Read Files
- Executing Shell Commands
- ExtendScript Toolkit
- File
- Folder
- Includes JSX
- Object Watch
- Read CSV
- Read In JSON From File And DONT Eval
- Storing Data In A Target Engine
- Target an application
- XML
- Isolate Layers With the Shy Setting
- Layer Duration Change
- Render And System Call
- Rename Layers
- SourceText to Keyframes from Array
- SourceText
- System Call
- app
- Colorbrewer
- ColorGroups
- Colors And Swatches
- Delay And View
- Dialogs
- Documents
- Duplicate And Transform
- Event AfterSave
- Export IDML
- ExtendScript in InDesign Scripting DOM
- Fonts
- GeometricBounds and Coordinates
- Get named pageItems
- Graphic Lines
- Groups
- HSL Color Wheel
- Images
- Includes
- InsertionPoints
- Layers
- Line Feeds And Carrige Returns
- Locked PageItems
- loops vs everyItem
- Masterspreads
- Matrix
- Objectstyles
- Outlines Groups Alignment
- Pages And Margins
- Pathfinder
- Placeholder Text
- Rectangles Ovals Polygons
- RulerOrigin
- Scripting Labels
- Select words at insertionPoint
- Simple Find And Change Grep with FC Query
- Simple Find And Change Grep
- Simple Find And Change Text
- Spiro
- Styles
- Table Cells
- Text Analysis ID FC
- Text Analysis
- Text Find Locations
- Text
- Transformation Matricies
- TransparencySettings
- XML creation and import