Adobe After Effects CS 6

Kikac_NNGK

Well-Known Member
Reaction score
33
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:

The Helper

Necromancy Power over 9000
Staff member
Reaction score
1,688
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.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top