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
*/
浙公网安备 33010602011771号