我有一个插件可以检测对象的像素宽度或高度是否更大。 它适用于其他物体,但对于形状图层,它只是说组成大小。 我的代码是
pixelWidth = +currentLayer.width * +width / 100;
pixelHeight = +currentLayer.height * +height / 100;
变量width和height是scale属性,我让它应用Scale属性的百分比影响结果,所以它的出现比例。
由于
答案 0 :(得分:3)
嗯,我想你的问题是“如何在After Effects中获得形状图层的宽度和高度?”。我对吗?你为什么不这么说。当你发现宽度和高度属性时,只返回comp的宽度和高度。对于文本和形状图层,您需要使用sourceRectAtTime(timeT, extents)
方法。它将返回一个像{top, left, width, height}
这样的对象,这些对象是从图层锚点开始测量的。
var layer = app.project.activeItem.selectedLayers[0];
$.writeln(layer.width); // gives the comp width
$.writeln(layer.height);// gives the comp height
// from the After Effects Scripting Guide
// AVLayer sourceRectAtTime() method
// app.project.item(index).layer(index).sourceRectAtTime(timeT, extents) Description
// Retrieves the rectangle bounds of the layer at the specified time index,
// corrected for text or shape layer content.
// Use, for example, to write text that is properly aligned to the baseline.
/**
* sourceRectAtTime
* @param {Number} The time index, in seconds. A floating-point value.
* @param {Boolean} True to include the extents, false otherwise. Extents apply to shape layers, increasing the size of the layer bounds as necessary.
*
* @return {Object} A JavaScript object with four attributes, {top, left, width, height}.
*/
var bounds = layer.sourceRectAtTime(0, true);
$.writeln(bounds.toSource());