Forum Replies Created

  • Herby Herve

    November 24, 2016 at 12:10 pm in reply to: Script to show/hide some layers

    Got it!!
    I paste the script below.
    I’m pretty sure that this script can be improved but it already does the job…

    function hideLayer (layer, selectedLanguage){
    // Hide/Show layers according to the last 2 digits of layer's name
    if (layer.hasVideo && selectedLanguage == "All" || layer.name.slice(-2) == selectedLanguage){layer.enabled = true};
    else {layer.enabled = false};
    if (layer.hasAudio && selectedLanguage == "All" || layer.name.slice(-2) == selectedLanguage){layer.audioEnabled = true};
    else {layer.audioEnabled = false};
    // For layers used both in EN & FR version
    if (layer.name.slice(-5) == "EN/FR" && selectedLanguage == "EN" && layer.hasVideo){layer.enabled = true};
    if (layer.name.slice(-5) == "EN/FR" && selectedLanguage == "EN" && layer.hasAudio){layer.audioEnabled = true};
    if (layer.name.slice(-5) == "EN/FR" && selectedLanguage == "CH" && layer.hasVideo){layer.enabled = false};
    if (layer.name.slice(-5) == "EN/FR" && selectedLanguage == "CH" && layer.hasAudio){layer.audioEnabled = false};
    };
    // Scan all layers
    function goThroughLayers (Comp, selectedLanguage){
    for (var p = 1; p <= Comp.numLayers; p++){
    // Check if layer needs to be modified
    if(Comp.layer(p).name.slice(-2) == "EN" || Comp.layer(p).name.slice(-2) == "FR" || Comp.layer(p).name.slice(-2) == "CH"){
    hideLayer(Comp.layer(p), selectedLanguage);
    };
    };
    };

    //UI
    var w =new Window ("dialog","Select language");
    w.orientation="column";
    var radio_group = w.add ("panel");
    radio_group.orientation="row";
    radio_group.alignChildren ="center";
    radio_group.add ("radiobutton", undefined, "EN");
    radio_group.add ("radiobutton", undefined, "FR");
    radio_group.add ("radiobutton", undefined, "CH");
    radio_group.add ("radiobutton", undefined, "All");
    var button_group = w.add ("group");
    button_group.orientation="row";
    button_group.alignChildren ="center";
    button_group.add ("button", undefined, "Cancel");
    button_group.add ("button", undefined, "OK");

    // set dialog defaults
    radio_group.children[0].value =true;

    if(w.show ()== 1){
    // Get selected language
    for(var x = 0; x < radio_group.children.length; x++){
    if(radio_group.children[x].value ==true){var selectedLanguage = (radio_group.children[x].text)};
    };

    app.beginUndoGroup("Language selection");

    // Search for all Compositions in the project
    for (var i = 1; i <= app.project.numItems; i++) {
    if (app.project.item(i) instanceof CompItem) {
    var Comp = app.project.item(i);
    goThroughLayers(Comp, selectedLanguage);
    }
    }
    app.endUndoGroup();
    };

  • Herby Herve

    November 23, 2016 at 11:20 am in reply to: Script to show/hide some layers

    Thanks Xavier. This helps a lot.
    In the meantime, I’ve found this page where I found a lot of help as well: https://leemscripts.tumblr.com/
    The last script on the page (enable 3d switches for an entire hierarchy) is quite similar to what I want to do.

    More than enough to start this script. I’ll post news here…

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