![]() ![]() | |
动作脚本可以将一个动作重复指定的次数,或是在特定的条件成立时重复动作。使用 while、do..while、for 和 for..in 动作可以创建循环。
在条件成立时重复动作: while 语句。 While 循环计算一个表达式的值,如果表达式为 true,则会执行循环体中的代码。当循环体中的每个语句都执行完毕后,会再次评估该表达式。在下面的示例中,循环将执行四次:
i = 4;
while (var i > 0) {
my_mc.duplicateMovieClip("newMC" +i, i );
i--;
}
可以使用 do..while 语句创建与 while 循环同类的循环。Do..while 循环中是在代码块结束时计算表达式的值,因此该循环总是至少执行一次,如下例所示:
i = 4;
do {
my_mc.duplicateMovieClip("newMC" +i, i );
i--;
} while (var i > 0);
使用内置计数器重复动作: for 语句。多数循环都会使用某种计数器,以控制循环执行的次数。每执行一次循环就称为一次迭代。可以声明一个变量并编写一条语句,每执行一次循环,该语句都会增加或减小该变量。在 for 动作中,计数器和递增计数器的语句都是该动作的一部分。在下面的示例中,第一个表达式 (var i = 4) 是在第一次迭代之前计算的初始表达式。第二个表达式 (i > 0) 是每次运行循环之前检查的条件。第三个表达式 (i--) 称为后表达式,每次运行循环之后会计算该表达式。
for (var i = 4; i > 0; i--){
myMC.duplicateMovieClip("newMC" + i, i + 10);
}
遍历影片剪辑或对象的子级: for..in 语句。 子级包括其它影片剪辑、函数、对象和变量。下面的示例使用 trace 语句在“输出”面板中显示其结果:
myObject = { name:'Joe', age:25, city:'San Francisco' };
for (propertyName in myObject) {
trace("myObject has the property:" + propertyName + ", with the value:" + myObject[propertyName]);
}
本示例将在“输出”面板中生成如下结果:
myObject has the property:name, with the value:Joe myObject has the property:age, with the value: 25 myObject has the property:city, with the value:San Francisco
您可能想让脚本重复特定的子级类型,例如只重复影片剪辑子级。将 for..in 与 typeof 运算符配合使用即可实现此目的。
for (name in myMovieClip) {
if (typeof (myMovieClip[name]) == "movieclip") {
trace("I have a movie clip child named " + name);
}
}
有关各个动作的更多信息,请参见动作脚本字典概述中相应的各个条目。
![]() ![]() | |