Quantcast
Channel: Adobe Community : Discussion List - After Effects Scripting
Viewing all articles
Browse latest Browse all 2143

getting "ReferenceError: Object is invalid" while resetting a listBox

$
0
0

Hi

i'm trying to create a refresh button for a list (that shows the render Q better for my needs). it works fine, i'm removing all the list items and then re-entering them. for some reason when i click the same refresh button for the 6th/7th time i'm getting:

 

ReferenceError: Object is invalid

 

(it seems to be related to line 66 in the code - " curItem = folderPathListbox.add ('item', renderItem.toString());    // Column 1")

any help?

i'm lost here...

attached are the JSX and a sample project i use to test it:

 

thanks

D

 

here's the code:

 

 try{    
function createUserInterface (thisObj,userInterfaceString,scriptName){            var pal = (thisObj instanceof Panel) ? thisObj : new Window("palette", scriptName,                                        undefined,{resizeable: true});            if (pal == null) return pal;                       var UI=pal.add(userInterfaceString);                       pal.layout.layout(true);            pal.layout.resize();            pal.onResizing = pal.onResize = function () {                                                            this.layout.resize();                                                            }            if ((pal != null) && (pal instanceof Window)) {                    pal.show();            }    return UI;
};






{var res ="group {orientation:'column',\
                                    alignment:['fill','fill'],\                                    alignChildren:['fill','top'],\                                    headerText:StaticText {text:'Render Q lister', alignment:'center'},\                                    buttonGroup: Group{\                                                                alignment:['center','top']\                                                                refButton: Button{text:'Refresh'}\                                                                dupButton: Button{text:'Duplicate Selected'}\                                                                selButton: Button{text:'Select in renderQueue'}\                                                                expButton: Button{text:'Export to File'}\                                                                }\                                    folderPathListbox:ListBox{\                                                            alignment:['fill','fill'],\                                                            properties:{\                                                                            multiline:true,\                                                                            multiselect:true,\                                                                            numberOfColumns:5,\                                                                            showHeaders:true,\                                                                            columnTitles: ['Render #','Date','Time', 'Comp Name', 'Render Path']\                                                                            }\                                                            },\                        }";                       
}
function listRQ (rqList){    try{            var folderPathListbox = rqList;            var proj = app.project;            var totalRenderQ = proj.renderQueue.numItems;            for(var i= 1; i<=totalRenderQ;  i++){                    var totalOM= proj.renderQueue.item(i).numOutputModules;                     for (var om= 1; om<=totalOM; om++){                                    var dateList, timeList, curItem, renderItem;                                    renderItem =  "Render #" + i + " - " + om ;                                    if (proj.renderQueue.item(i).startTime != null){                                                var min = proj.renderQueue.item(i).startTime.getMinutes() <10 ? "0"+ proj.renderQueue.item(i).startTime.getMinutes() : proj.renderQueue.item(i).startTime.getMinutes();                                                var year = proj.renderQueue.item(i).startTime.getFullYear().toString().substr (-2,2);                                                timeList = (proj.renderQueue.item(i).startTime.getHours()-1)+":" + min;                                                dateList =proj.renderQueue.item(i).startTime.getDate()+"/"+(proj.renderQueue.item(i).startTime.getMonth()+1)+"/"+year ;                                    }else{                                                 dateList = "not rendered";                                            timeList = "    ";                                        }                                    curItem = folderPathListbox.add ('item', renderItem.toString());    // Column 1                                    curItem.subItems[0].text = dateList.toString();                         // Column 2                                    curItem.subItems[1].text = timeList.toString();                          // Column 3                                    curItem.subItems[2].text = proj.renderQueue.item(i).comp.name; // Column 4                                    curItem.subItems[3].text = proj.renderQueue.item(i).outputModule(om).file.toString().replace(new RegExp(",","g"), "\r").replace(new RegExp("%20","g"), " ").replace(new RegExp("%5B","g"), "[").replace(new RegExp("%5D","g"), "]"); // Column 5                                   }            }          }catch(err){alert(err)}    return folderPathListbox;    }


var UI = createUserInterface(this,res,"Better RQ");
var myList = UI.folderPathListbox;
var lsRq = listRQ(myList);


{ // buttons action
UI.buttonGroup.refButton.onClick = function () {
                                                                                                                                  lsRq.removeAll();                                                                        lsRq = listRQ(myList);                                                                         }
UI.buttonGroup.dupButton.onClick = function () {    alert ("Dup");    }
UI.buttonGroup.selButton.onClick = function () {    alert ("Sel");    }
UI.buttonGroup.expButton.onClick = function () {    alert ("Exp");    }
}




}
catch(err){
    alert ("Error at line # " + err.line.toString() + "\r" + err.toString());    }

Viewing all articles
Browse latest Browse all 2143

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>