Adobe After Effects CS 6

Discussion in 'General Programming Support' started by Kikac_NNGK, Jun 13, 2016.

  1. Kikac_NNGK

    Kikac_NNGK Well-Known Member

    Ratings:
    +33 / 0 / -0
    Hello it's been a long time since my last post here. Since a lot has changed, i don't even know if I'm posting this in the right section.
    I have this code here (script) for Adobe After Effects CS 6. It was working fine, until recently, when it started appear an undefined error at line 91 - here is the code:

    Code:
    var newFile = File.openDialog ("Select a file.");
    
    if (newFile != null) {
        var wMap = readWeather(newFile, 0).contentAry;
    
        app.beginUndoGroup("Weather Map");
            setWeatherMap(wMap);
        app.endUndoGroup();
    }
    
    function readWeather(inputDoc, linesToSkip){
        var curDoc = new File(inputDoc);
    
        if (curDoc.exists) {
            var contentAry = new Array();
            curDoc.open("r");
       
            while (!curDoc.eof){
                contentAry[contentAry.length] = curDoc.readln();       
            }
       
            curDoc.close();
        }
        contentAry.splice(0, linesToSkip);
        var contentList = contentAry.join("_dpt_").toString().replace(new RegExp("_dpt_", "g"), "\r");
        contentAry = contentAry;
        return {
            'contentAry': contentAry,
            'contentList': contentList
        }
    }
    
    function setWeatherMap(content){
        try {
            if (content instanceof Array){
                var c, compName, curLine, line1, line2, line3, line4, pl;
                var theComps = [];
                var myFilesImp = [];
                var aryLength = content.length;
                var activeComp = app.project.activeItem;
                var imgDir = ("D:\\_kikac\\news 2015\\Kikac\\");
                var newAmt = 9;
                function processFolder(theFolder){
                    for ( var i = 1; i <= newAmt; i++){
                        var importOpts = new ImportOptions( new File(theFolder + "w"+ i + ".mov"));
                        var importFiles = app.project.importFile (importOpts);
                        myFilesImp.push(importFiles);
                    }
                }
                processFolder(imgDir);         
           
                var weather = 9;
       
                for (var i = 0; i < aryLength; i++){
                    curLine = content [i];
                    pl = parse(curLine); //
                    line1 = pl.date;
                    line2 = pl.weatherText;
                    line3 = pl.Temp;
                    line4 = pl.weatherState;
                    compName = pl.date;
                    if (curLine != ""){
                      c = app.project.items.addComp(compName + "Denes", 652, 630, 1.0, 10, 25); // (compname, width, height, pixel aspect ratio, duration in seconds, fps)
                      createDateLayers(c, line1);
                      createWeatherTextLayers(c, line2);
                      createTempLayers(c, line3);
                      activeComp.layers.add(c);
                      theComps.push(c);
                // IF EXPRESSION TO IMPORT THE CORRESPONDING FILES ACCORDINGLY WITH LINE4
                      if (line4 == "oblacno"){
                          var myFile = c.layers.add(myFilesImp[0], );
                      } else if (line4 == "dozd i grmezi"){
                          var myFile = c.layers.add(myFilesImp[1], );
                      } else if (line4 == "dozd"){
                          var myFile = c.layers.add(myFilesImp[2], );
                      } else if (line4 == "sneg"){
                          var myFile = c.layers.add(myFilesImp[3], );
                      } else if (line4 == "sneg i dozd"){
                          var myFile = c.layers.add(myFilesImp[4], );
                      } else if (line4 == "bura"){
                          var myFile = c.layers.add(myFilesImp[5], );
                      } else if (line4 == "soncevo"){
                          var myFile = c.layers.add(myFilesImp[6], );
                      } else if (line4 == "pretezno soncevo"){
                          var myFile = c.layers.add(myFilesImp[7], );
                      } else if (line4 == "soncevo so dozd"){
                          var myFile = c.layers.add(myFilesImp[8], );
                      }
                  ///////////////////////////////////////
                  // SETTING FOOTAGE SIZE TO FIT COMP SIZE  (set to 90% of comp size)
                        var s = (c.width*c.pixelAspect)/(myFile.width*myFile.source.pixelAspect)*70; //THIS IS LINE 91
                        myFile.property("Scale").setValue([s,s]);
                        myFile.property("ADBE Transform Group").property("ADBE Position").setValue([(c.width - s)*0.55, ((c.height - s)*0.50)]);
                //////////////////////////
                // CREATING LOOP FOR NON-STILL FOOTAGE
                        var frameD = c.frameDuration;
                        var outP = myFile.outPoint;
                        myFile.timeRemapEnabled = true;
                        myFile.timeRemap.setValueAtTime(outP-frameD,outP-frameD);
                        myFile.timeRemap.setValueAtTime(outP,0);
                        myFile.timeRemap.expressionEnabled = true;
                        myFile.timeRemap.expression = "loopOut()";
                        myFile.outPoint = c.workAreaStart+c.workAreaDuration;
                ////////////////////////////
                     }
                   }
            }
        }catch(err){alert(err.line.toString() + "\r" + err.toString())};
    }
    function parse(myText){
        var t = myText.split("\t");
        return {
          'date': t[0],
          'weatherText': t[1],
          'Temp': t[2],
          'weatherState': t[3]
        }
    }
    function createDateLayers(comp, myText){
        var newTextLayer = comp.layers.addBoxText([comp.width, 120], "a");
        newTextLayer.property("ADBE Transform Group").property("ADBE Position").setValue([(comp.width)*0.50, (comp.height - comp.height*0.88)]);
        var textProp = newTextLayer.property("Source Text");
        var textDoc = textProp.value;
        //textDoc.resetParagraphStyle (); // resets all the specifications of doc text layer to defaults
        textDoc.fontSize = 56; // size of font
        textDoc.fillColor = [1, 1, 1]; // [RGB] - [1, 1, 1] max value, not [255, 255, 255]
        textDoc.strokeColor = [0.5, 0.5, 0.5]; // stroke
        textDoc.strokeWidth = 2; // stroke width
        textDoc.font = "M_Svoboda"; // font of text
        textDoc.strokeOverFill = false; // stroke over text
        textDoc.applyStroke = true; // apply the set stroke
        textDoc.applyFill = true; // apply the set fill color
        textDoc.text = myText; // the text value
        textDoc.justification = ParagraphJustification.CENTER_JUSTIFY; // specific value, can be justified left, right, top, bottom
        textDoc.tracking = 50; // spacing between chars
        textProp.setValue(textDoc);
    }
    function createWeatherTextLayers(comp, myText){
        var newTextLayer = comp.layers.addText("a");
        newTextLayer.property("ADBE Transform Group").property("ADBE Position").setValue([comp.width*0.50, (comp.height - comp.height*0.20)]);
        var textProp = newTextLayer.property("Source Text");
        var textDoc = textProp.value;
        //textDoc.resetCharStyle ();
        textDoc.fontSize = 60;
        textDoc.fillColor = [0, 0, 0];
        textDoc.strokeColor = [0.5, 0.5, 0.5];
        textDoc.strokeWidth = 2;
        textDoc.font = "M_Svoboda";
        textDoc.strokeOverFill = false;
        textDoc.applyStroke = true;
        textDoc.applyFill = true;
        textDoc.text = myText;
        textDoc.justification = ParagraphJustification.CENTER_JUSTIFY;
        textDoc.tracking = 50;
        textProp.setValue(textDoc);
    }
    function createTempLayers(comp, myText){
        var newTextLayer = comp.layers.addText("a");
        newTextLayer.property("ADBE Transform Group").property("ADBE Position").setValue([comp.width*0.50, (comp.height - comp.height*0.01)]);
        var textProp = newTextLayer.property("Source Text");
        var textDoc = textProp.value;
        //textDoc.resetCharStyle ();
        textDoc.fontSize = 90;
        textDoc.fillColor = [0, 0, 0];
        textDoc.strokeColor = [0.5, 0.5, 0.5];
        textDoc.strokeWidth = 2;
        textDoc.font = "M_Svoboda";
        textDoc.strokeOverFill = false;
        textDoc.applyStroke = true;
        textDoc.applyFill = true;
        textDoc.text = myText;
        textDoc.justification = ParagraphJustification.CENTER_JUSTIFY;
        textDoc.tracking = 50;
        textProp.setValue(textDoc);
    }
    Thanks in advance

    EDIT: The line is on the code where I set the footage size (It is marked with a comment in the code)
     
    Last edited: Jun 13, 2016
  2. The Helper

    The Helper Administrator Staff Member

    Ratings:
    +1,213 / 2 / -1
    The only thing I can see is the error is happening on a divide line. Any chance that myfile.width or myfile.source.pixelAspect are zero? If so you would get a divide by zero error and that might be the cause.
     

Share This Page