代码之家  ›  专栏  ›  技术社区  ›  Brian Genisio

在ActionScript中很好地使用“for each”?

  •  2
  • Brian Genisio  · 技术社区  · 14 年前

    MyClass 这个类有数据在里面。现在,假设我想使用“for each”遍历该数据:

    var myData:MyClass = new MyClass();
    myData.Populate(fromSource);
    
    for each(var item in myData) {
      DoSomethingWith(item);
    }
    

    当然,这没什么用,因为 类名

    类名

    3 回复  |  直到 14 年前
        1
  •  3
  •   alxx    14 年前

    我相信你需要延长 Proxy nextValue(index:int) . 它是由 for each .

        2
  •  2
  •   Brian Genisio    14 年前

    好吧,我想出来了。

    public class MyClass extends Proxy
    {
        override flash_proxy function nextNameIndex (index:int):int {
            // This is the command to move to the next item or start over (index == 0)
            // return an incremented index when there is data
            // return 0 when you are done.
        }
    
        override flash_proxy function nextValue(index:int):* {
            // This is the command to get the data
            // The index that is passed in is the index returned in nextNameIndex
        }
    }
    
        3
  •  -1
  •   Robusto    14 年前

    for each ... in

    " [对于每个。。。in]迭代集合中的项,并为每个项执行语句。foreach..in语句作为E4X语言扩展的一部分引入,它不仅可以用于XML对象,还可以用于对象和数组。for each..in语句只遍历对象的动态属性,而不是固定属性。固定属性是定义为类定义一部分的属性。若要对用户定义类的实例使用for each..in语句,必须使用dynamic属性声明该类。 "