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:
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)
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: