Advertisement
NullChips

Trim Paths Sliders

May 24th, 2018
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function (thisObj) {  
  2.     buildUI(thisObj);  
  3.  
  4.     //Build the window
  5.     function buildUI(thisObj) {  
  6.         var window = (thisObj instanceof Panel) ? thisObj : new Window("palette", "script", undefined, {  
  7.             resizeable: true  
  8.         });  
  9.  
  10.         //Add elements to the window
  11.         window.alignChildren = "center";
  12.         window.orientation = "column";
  13.         var mainGroup = window.add("group");
  14.         mainGroup.alignChildren = ("center");
  15.         mainGroup.orientation = ("row");
  16.         var staticTextGroup = mainGroup.add("group");
  17.         staticTextGroup.alignChildren = ("left");
  18.         staticTextGroup.orientation = ("column");
  19.         staticTextGroup.add ("statictext", undefined, "In:");
  20.         staticTextGroup.add ("statictext", undefined, "Out:");
  21.         var sliderGroup = mainGroup.add("group");
  22.         sliderGroup.orientation = ("column");
  23.         var inSlider = sliderGroup.add("slider {minValue: 0, maxValue: 100, value: 0}");
  24.         var outSlider = sliderGroup.add("slider {minValue: 0, maxValue: 100, value: 100}");
  25.         var editTextGroup = mainGroup.add("group");
  26.         editTextGroup.orientation = ("column");
  27.         var inEditText = editTextGroup.add("edittext {text: 0, characters: 3, justify: 'center'}");
  28.         var outEditText = editTextGroup.add("edittext {text: 100, characters: 3, justify: 'center'}");
  29.         var addTrimButton = window.add("button", undefined, "Add Trim Paths");
  30.  
  31.         //Slider functions
  32.         inSlider.onChanging = function () {
  33.             inEditText.text = Math.round(inSlider.value);
  34.         }
  35.    
  36.         inSlider.onChange = function () {
  37.              var comp = app.project.activeItem;
  38.                     if (!comp || !(comp instanceof CompItem)){
  39.                         alert("No composition is selected. Please select a composition and try again.");
  40.                         return;
  41.                     }
  42.                     for(var i = 0; i < comp.selectedLayers.length; i++) {
  43.                          var myShape = app.project.activeItem.selectedLayers[i];
  44.                          var timePosition = app.project.activeItem.time;
  45.                          myShape.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim Start").setValueAtTime(timePosition, inSlider.value);
  46.                     }
  47.         }
  48.  
  49.         outSlider.onChanging = function() {
  50.             outEditText.text = Math.round(outSlider.value);
  51.         }
  52.    
  53.         outEditText.onChange = function () {
  54.              var comp = app.project.activeItem;
  55.                     if (!comp || !(comp instanceof CompItem)){
  56.                         alert("No composition is selected. Please select a composition and try again.");
  57.                         return;
  58.                     }
  59.                     for(var i = 0; i < comp.selectedLayers.length; i++) {
  60.                          var myShape = app.project.activeItem.selectedLayers[i];
  61.                          var timePosition = app.project.activeItem.time;
  62.                          myShape.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim End").setValueAtTime(timePosition, outSlider.value);
  63.                     }
  64.         }
  65.    
  66.         //Editable text functions
  67.         inEditText.onChange = function() {
  68.             inSlider.value = inEditText.text;
  69.             var comp = app.project.activeItem;
  70.                     if (!comp || !(comp instanceof CompItem)){
  71.                         alert("No composition is selected. Please select a composition and try again.");
  72.                         return;
  73.                     }
  74.                     for(var i = 0; i < comp.selectedLayers.length; i++) {
  75.                          var myShape = app.project.activeItem.selectedLayers[i];
  76.                          var timePosition = app.project.activeItem.time;
  77.                          myShape.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim Start").setValueAtTime(timePosition, inSlider.value);
  78.                     }
  79.         }
  80.    
  81.         outEditText.onChange = function() {
  82.             outSlider.value = outEditText.text;
  83.             var comp = app.project.activeItem;
  84.                     if (!comp || !(comp instanceof CompItem)){
  85.                         alert("No composition is selected. Please select a composition and try again.");
  86.                         return;
  87.                     }
  88.                     for(var i = 0; i < comp.selectedLayers.length; i++) {
  89.                          var myShape = app.project.activeItem.selectedLayers[i];
  90.                          var timePosition = app.project.activeItem.time;
  91.                          myShape.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim End").setValueAtTime(timePosition, outSlider.value);
  92.                     }
  93.         }
  94.    
  95.         //Button function
  96.         addTrimButton.onClick = function() {
  97.             var comp = app.project.activeItem;
  98.                     if (!comp || !(comp instanceof CompItem)){
  99.                         alert("No composition is selected. Please select a composition and try again.");
  100.                         return;
  101.                     }
  102.                
  103.                 for(var i = 0; i < comp.selectedLayers.length; i++) {                    
  104.                         var shapeLayers = app.project.activeItem.selectedLayers[i];
  105.                         try{shapeLayers.property("ADBE Root Vectors Group").addProperty("ADBE Vector Filter - Trim");}catch(error){return;}
  106.                         var timePosition = app.project.activeItem.time;
  107.                         shapeLayers.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim Start").setValueAtTime(timePosition, myPanel.grp.trimPaths.sliders.startSlider.value);
  108.                         shapeLayers.property("ADBE Root Vectors Group").property("ADBE Vector Filter - Trim").property("ADBE Vector Trim End").setValueAtTime(timePosition, myPanel.grp.trimPaths.sliders.endSlider.value);
  109.                     }
  110.                 }
  111.  
  112.         //Adjust window on resize
  113.         window.onResizing = window.onResize = function () {  
  114.             this.layout.resize();  
  115.         };  
  116.  
  117.         //Makes sure that window is displayed to the user
  118.         if (window instanceof Window) {  
  119.             window.center();  
  120.             window.show();  
  121.         } else {  
  122.             window.layout.layout(true);  
  123.             window.layout.resize();  
  124.         }  
  125.     }  
  126. })(this);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement