FOR … IN 用法衍伸
- 若要确定影片剪辑实例的深度,请使用 MovieClip.getDepth()。
以下代码对 SWF 文件主时间轴上的所有影片剪辑进行迭代处理,并在“输出”面板中显示
每个剪辑的实例名称和深度值:
for ( var item:String in _root ) { var obj:Object = _root[item]; if (obj instanceof MovieClip) { var objDepth:Number = obj.getDepth();trace(obj._name + ":" + objDepth) } }
- 寻找给定时间线(_root)内的动态或输入文本域
先在主时间线上放三个空文本域,并依次把它们的变量名字设置为:“bianliang1”,“bianliang2”,“bianliang3”。然后写如下代码:
for (var shuxing in _root) { if (typeof _root[shuxing] == "movieclip") { trace(_root[shuxing]._name); } } /* 输出结果为: mc3 mc2 mc1 */
- 列举给定时间线(_root)内所有剪辑
先在主时间线上放三个影片剪辑“mc1”,“mc2”,“mc3”。然后写如下代码
- 列举数组元素
var shuzu=[12,"dsf",45]; for (var yuansu in shuzu) { trace("shuzu."+yuansu+" is "+shuzu[yuansu]); } /* 输出结果为: shuzu.2 is 45 shuzu.1 is dsf shuzu.0 is 12 */
- 列举内置对象属性
for (var shuxing in Key){ trace("Key."+shuxing+" is "+Key[shuxing]); }因为for-in循环不能列举内置Key对象的属性和方法,所以无任何输出结果。
- 列举自定义对象属性( 重要!如同 STRUCTURE 的用法 )
var ball=new Object(); ball.radius=12; ball.color="red"; ball.alpha=100; for (var shuxing in ball) { trace("ball."+shuxing+" is "+ball[shuxing]); }
输出结果如下:
ball.alpha is 100
ball.color is red
ball.radius is 12
- 您可以循环访问 XML 或 XMLList 对象,如下面的示例所示:
var myXML:XML = <users> <fname>Jane</fname> <fname>Susan</fname> <fname>John</fname> </users>; for each (var item in myXML.fname) { trace(item); } /* 输出 Jane Susan John */