形状图层高度 = ExtendScript 中的合成高度

Shape layer height = composition height in ExtendScript

我有一个插件可以检测对象的像素宽度或高度是否更大。 它适用于其他对象,但对于形状图层,它只是表示合成大小。 我的密码是

 pixelWidth = +currentLayer.width * +width / 100;
 pixelHeight = +currentLayer.height * +height / 100;

变量宽度和高度是比例尺属性,我让它应用比例尺属性的百分比影响结果,所以它是出现的比例尺。

谢谢

嗯,我想你的问题是 "How to get the width and height of a shape layer in After Effects?"。我对吗?你为什么不这么说。当您发现宽度和高度属性时,只有 return comp 的宽度和高度。对于文本和形状图层,您需要使用 sourceRectAtTime(timeT, extents) 方法。它将 return 像这样的对象 {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());