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
    */

posted on 2010-10-31 15:25  Morris  阅读(199)  评论(0编辑  收藏  举报

导航