ok, I tried to simplify the script and keep only the code around the UI. But the problem doesn't occur anymore...
Still, I guess I'm doing it wrong by some manner. So I post it anyhow. If someone can tell me a better way to write my code, i'll be happy
Code: Select all
function exportToXml(thisObject)
{
var globalLayerArray = new Array;
var myProj = app.project;
var myComp;
var myPath;
function layerItem(layer, name) {
this.layer = layer;
this.name = name;
}
// updateListBox refresh "list"
function updateListBox(list)
{
list.removeAll();
for (var i = 0; i<globalLayerArray.length; i++)
{
list.add("item", i + ": " + globalLayerArray[i].name);
}
$.writeln("list updated \n ------------");
}
// addItem in "list"
function addItem(list)
{
myComp = myProj.activeItem;
if (myComp.selectedLayers)
{
$.writeln(myComp.selectedLayers.length + " selected layers");
var sel = myComp.selectedLayers;
for (var i = 0; i<sel.length; i++)
{
var notInGlobal = true;
for (var o=0; o<globalLayerArray.length; o++)
{
if (sel[i].name == globalLayerArray[o].name)
notInGlobal = false;
}
if (notInGlobal)
{
globalLayerArray.push(new layerItem ( sel[i], sel[i].name));
$.writeln("added: " + sel[i].name);
}else
$.writeln("not added: " + sel[i].name);
}
updateListBox (list);
}
}
function UI()
{
var pal = new Window("palette", "Export to XML");
var myAGroup = pal.add("group");
myAGroup.orientation = "row";
myAGroup.alignChildren = "fill";
var myFirstAGroup = myAGroup.add("group");
myFirstAGroup.orientation = "column";
var addBtn = myFirstAGroup.add("button", undefined, "add");
var delBtn = myFirstAGroup.add("button", undefined, "delete");
var mySecondAGroup = myAGroup.add("group");
mySecondAGroup.alignChildren = "fill";
var myListBox = mySecondAGroup.add ("ListBox", undefined, "", {multiselect:true});
myListBox.size = [200,150];
myListBox.alignment = ["fill", "fill"];
var myThirdAGroup = myAGroup.add("group");
myThirdAGroup.preferredSize =[100,150];
myThirdAGroup.orientation = "column";
myThirdAGroup.alignChildren = ["left","top"];
myThirdAGroup.enabled = false;
var animCheck = myThirdAGroup.add("checkbox", undefined, "animated");
var stillCheck = myThirdAGroup.add("checkbox", undefined, "still layer");
var complexLabl = myThirdAGroup.add("statictext", undefined, "complexity: " + 1);
var complexSlider = myThirdAGroup.add ("slider", undefined, 1, 1, 5);
var myBGroup = pal.add("group");
var exptBtn = myBGroup.add("button", undefined, "create render comp");
addBtn.onClick = function(){
addItem(myListBox);
}
myListBox.onChange = function () {
pal.myAGroup.myThirdAGroup.enabled = true;
}
pal.center();
pal.show();
}
UI();
}
exportToXml(this);