User Guide

for..in 303
for..in
Availability
Flash Player 5.
Usage
for(variableIterant in object){
statement(s);
}
Parameters
variableIterant
The name of a variable to act as the iterant, referencing each property of an
object or element in an array.
object The name of an object to be iterated.
statement(s) An instruction to execute for each iteration.
Returns
Nothing.
Description
Statement; iterates over the properties of an object or elements in an array and executes the
statement for each property or element. Methods of an object are not enumerated by the
for..in action.
Some properties cannot be enumerated by the
for..in action. For example, movie clip
properties, such as
_x and _y, are not enumerated. In external class files, static members are not
enumerable, unlike instance members.
The
for..in statement iterates over properties of objects in the iterated object’s prototype chain.
Properties of the object are enumerated first, then properties of its immediate prototype, then
properties of the prototype’s prototype, and so on. The
for..in statement does not enumerate
the same property name twice. If the object
child has prototype parent and both contain the
property
prop, the for..in statement called on child enumerates prop from child but ignores
the one in
parent.
The curly braces (
{}) used to enclose the block of statements to be executed by the for..in
statement are not necessary if only one statement will execute.
If you write a
for..in loop in a class file (an external AS file), then instance members are not
available for the loop, but static members are. However, if you write a
for..in loop in a FLA file
for an instance of the class, then instance members are available but static ones are not.
Examples
The following example shows using for..in to iterate over the properties of an object:
var myObject:Object = {name:"Tara", age:27, city:"San Francisco"};
for (var name in myObject) {
trace("myObject."+name+" = "+myObject[name]);
}
CHAPTER 2
ActionScript Language Reference