[Xerte] Loop through an object?

Paul Swanson Paul.Swanson at harlandfs.com
Wed Oct 13 23:46:17 BST 2010


Use the for..in statement:

 

for..in Statement

 

Usage

                

 

for (variableIterant in object) {

    statement(s); 

} 

 

Player version: Flash Player 5

 

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 ({}) that are used to enclose the block of statements
to be executed by the for..in statement are not necessary if only one
statement is executed.

 

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.

 

Parameters

                variableIterant:String - The name of a variable to act
as the iterant, referencing each property of an object or element in an
array.

 

Example

 

The following example uses for..in to iterate over the properties of an
object:

 

var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 

for (var prop in myObject) { 

    trace("myObject."+prop+" = "+myObject[prop]); 

} 

//output 

myObject.firstName = Tara 

myObject.age = 27 

myObject.city = San Francisco

 

The following example uses for..in to iterate over the elements of an
array:

 

var myArray:Array = new Array("one", "two", "three"); 

for (var index in myArray) 

    trace("myArray["+index+"] = " + myArray[index]); 

// output: 

myArray[2] = three 

myArray[1] = two 

myArray[0] = one

 

The following example uses the typeof operator with for..in to iterate
over a particular type of child:

 

for (var name in this) { 

    if (typeof (this[name]) == "movieclip") { 

        trace("I have a movie clip child named "+name); 

    } 

}

 

Note: If you have several movie clips, the output consists of the
instance names of those clips.

 

The following example enumerates the children of a movie clip and sends
each to Frame 2 in its respective Timeline. The RadioButtonGroup movie
clip is a parent with three children: _RedRadioButton_,
_GreenRadioButton_,, and _BlueRadioButton_.

 

for (var name in RadioButtonGroup) {
RadioButtonGroup[name].gotoAndStop(2); }

 

From: xerte-bounces at lists.nottingham.ac.uk
[mailto:xerte-bounces at lists.nottingham.ac.uk] On Behalf Of Dave Burnett
Sent: Wednesday, October 13, 2010 3:35 PM
To: Xerte list
Subject: [Xerte] Loop through an object?

 


myobject = new Object();


myobject[130] = "alpha";
myobject[230] = "bravo";
myobject[330] = "charlie";

Not knowing the numerics that will wind up in there, how do I loop
through it?

e.g. I want to match the alpha values to something else and get the
property.









This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it.
Please do not use, copy or disclose the information contained in this
message or in any attachment. Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham. 

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system: you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation. 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.nottingham.ac.uk/pipermail/xerte/attachments/20101013/99fd0cd4/attachment.html


More information about the Xerte mailing list