for..in

Disponibilidad

Flash Player 5.

Sintaxis

for(variableIterant in object){
  statement(s); 
}

Parámetros

variableIterant Nombre de una variable que actúa como repetidor, haciendo referencia a cada propiedad de un objeto o elemento de una matriz.

object Nombre de un objeto que debe repetirse.

statement(s) Instrucción que debe ejecutarse para cada repetición.

Valor devuelto

Ninguno.

Descripción

Sentencia; realiza una reproducción indefinida por las propiedades de un objeto o elemento de una matriz y ejecuta la statement para cada propiedad de un objeto.

Las acciones for o for..in no pueden enumerar algunas propiedades. Por ejemplo, los métodos incorporados de la clase Array (como Array.sort() y Array.reverse()) no se incluyen en la enumeración de un objeto Array, y las propiedades de clip de película, como _x y la propiedad _y, no se enumeran. En archivos de clase externos, los miembros de instancia no son numerables; únicamente lo son los miembros dinámicos y estáticos.

La sentencia for..in se repite en las propiedades de los objetos de la cadena prototipo del objeto repetido. Si el prototipo del objeto secundario es principal, repetir las propiedades del secundario con for..in, también repetirá las propiedades heredadas del principal.

La acción for..in enumera todos los objetos de la cadena prototipo de un objeto. Primero se enumeran las propiedades del objeto, después las propiedades del prototipo inmediato, las propiedades del prototipo del prototipo y así sucesivamente. La acción for..in no enumera dos veces el mismo nombre de propiedad. Si el objeto secundario tiene un prototipo principal y ambos contienen la propiedad prop, la acción for..in llamada en el secundario enumerará prop en el secundario, pero pasará por alto la de principal.

Ejemplo

A continuación se muestra un ejemplo de la utilización de for..in para repetir las propiedades de un objeto:

myObject = { name:'Tara', age:27, city:'San Francisco' };
for (name in myObject) {
  trace ("myObject." + name + " = " + myObject[name]);
}

La salida de este ejemplo es la que se muestra a continuación:

myObject.name = Tara
myObject.age = 27
myObject.city = San Francisco

A continuación se muestra un ejemplo de la utilización del operador typeof con for..in para repetir un tipo concreto de secundario:

for (name in my_mc) {
  if (typeof (my_mc[name]) = "clip de película") {
    trace ("I have a movie clip child named " + name);
  }
}

El ejemplo siguiente enumera los elementos secundarios de un clip de película y envía cada uno al fotograma 2 de sus respectivas líneas de tiempo. El clip de película RadioButtonGroup es principal con varios secundarios, _RedRadioButton_, _GreenRadioButton_ y _BlueRadioButton.

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