An Array is a type of object that stores an ordered set of numbers. An Array is represented as a list of numbers separated by commas and surrounded by brackets, as in this example:
[10, 23]
You can assign an Array to a variable, making it easy to refer to Array values in other areas of the expression. For example:
myArray = [10, 23]
The dimension of an Array is the number of elements in the Array. The dimension of myArray is 2. Different properties in After Effects have different dimensions depending on the number of value arguments they have. In the expression language, properties’ values are either single values (Numbers) or Arrays.
The following table provides examples of some properties and their dimensions:
|
Dimension |
Property |
|---|---|
|
1 |
Rotation ° Opacity % |
|
2 |
Scale [x=width, y=height] Position [x, y] Anchor Point [x, y] |
|
3 |
Scale [width, height, depth] 3D Position [x, y, z] 3D Anchor Point [x, y, z] |
|
4 |
Color [red, green, blue, alpha] |
You can access the individual elements of an Array by using brackets and an index number to indicate which element you want. The elements in an Array are indexed starting from 0. Using the previous example, myArray[0] is 10 and myArray[1] is 23.
The following two expressions are equivalent:
[myArray[0], 5] [10, 5]
The Position property arrays are indexed as follows:
position[0] is the x coordinate of position.
position[1] is the y coordinate of position.
position[2] is the z coordinate of position.
Colors are represented as four-dimensional arrays [red, green, blue, alpha]. In projects with a color depth of 8 or 16 bpc, each value in a color array ranges from 0 (black) to 1 (white). For example, red can range from 0 (no color) to 1 (red). So, [0,0,0,0] is black and transparent, and [1,1,1,1] is white and completely opaque. In projects with a color depth of 32 bpc, values under 0 and over 1 are allowed.
If you use an index that is greater than the index of the highest-dimension component in an Array, After Effects returns an error. For example, myArray[2] causes an error, but position[2] returns the z coordinate of Position.
Many of the properties and methods in the After Effects expression language take Array objects as arguments or return them as values. For example, thisLayer.position is an Array that is either two-dimensional or three-dimensional depending on whether your layer is 2D or 3D.
If you want to write an expression that keeps the y value of an object’s animation but fixes the x value at 9, you would use the following:
y = position[1]; [9,y]
The following is even more succinct:
[9, position[1]]
This is an important point, so let’s look at one more example. If you want to combine the x position value from Layer A with the y position value from Layer B, you would use the following:
x = thisComp.layer("Layer A").position[0];
y = thisComp.layer("Layer B").position[1];
[x,y]
You can create an expression that refers to just one value within the Array of a 2D or 3D property. By default, the first value is used, unless you specify otherwise. For example, if you drag the pick whip from Layer A’s Rotation property to Layer B’s Scale property, the following expression appears:
thisComp.layer("Layer B").scale[0]
By default, the above expression uses the first value of the Scale property, which is width. If you prefer to use the height value instead, drag the pick whip directly to the second value instead of the property name, or change the expression as follows:
thisComp.layer("Layer B").scale[1]
Conversely, if you drag the pick whip from Layer B’s Scale property to Layer A’s Rotation property, After Effects automatically creates a variable, assigns the one-dimensional Rotation property’s value to it, and then uses that variable for both dimensions of the Scale property:
temp = thisComp.layer(1).transform.rotation; [temp, temp]
Send me an e-mail when comments are added to this page | Comment Report
Current page: http://livedocs.adobe.com/en_US/AfterEffects/8.0/WS3878526689cb91655866c1103906c6dea-7a33.html
Comments
Comments are no longer accepted for After Effects CS3. After Effects CS4 is the current version. To discuss After Effects CS3, please use the Adobe forum.