Adobe After Effects CS5.5 ScriptUI Bug

So it seems that ScriptUI Panels don’t receive layout events, under the 64-bit Windows version of CS5.5. A forum post I ran across has a few other people with this issue, and they report it affects After Effects, and Photoshop also. I was able to work around it a little, by calling the PanelObject.layout.layout() function. Unfortunately, it doesn’t help with resize events, but it’s better than manually typing in coordinates for controls.

Here’s a smidge of code that reproduces the issue. I filed a bug, hopefully it gets fixed. I’m spending a good deal of time working in the ExtendScript toolkit while doing post for Binary Samurai, and bugs don’t help!

var testPanel = createUI(this);

function createUI(thisObj) {
	var win = (thisObj instanceof Panel) ? thisObj : new Window('palette', 'Test', [100, 100, 300, 300]);
	
	var row1 = win.add('group', undefined);
	var btnOne = row1.add('button', undefined, 'One'); btnOne.onClick = doOne;
	var btnTwo = row1.add('button', undefined, 'Two'); btnTwo.onClick = doTwo;
	
	var row2 = win.add('group', undefined);
	var btnThree = row2.add('button', undefined, 'Three'); btnThree.onClick = doThree;
	var btnFour = row2.add('button', undefined, 'Four'); btnFour.onClick = doFour;

	// Broken events in CS5 x64 - these don't help! bug report filed...
	win.addEventListener('show', win.layout.layout);
	win.addEventListener('resize', win.layout.resize);
	
	// Workaround. Lame.
	win.layout.layout();
	
	return win;
}
 

Aaron K.

Aaron Kondziela is a technologist and serial entrepreneur living in New York City.

 

Leave a Reply

Your email address will not be published. Required fields are marked *