精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>动画制作>>软件教程>>FLASH教程>>《Flash MX AS基础》第九课

主题:《Flash MX AS基础》第九课
发信人: younger.zz(多收了三五斗)
整理人: yufif(2003-09-27 16:15:47), 站内信件
2.2 分支和循环  (第九课) 


2.2-4 switch 

语法规范 
switch (expr){ 
 case: value 
          do something 
[default:] 
do something 


参数解释 
expr:任意表达式。  
Case:case 关键字,Value是expr的值,如果在使用全等 (===) 的情况下,value值的类型要与 expr 的类型相匹配,才执行这组语句。  
Default:关键字,其后跟着如果这些 case 表达式都不与 switch expr 参数全等 (===) 匹配时要执行的语句。  

详细说明 
switch是创建Action Script语句的分支结构。switch 动作测试一个条件,并在条件返回 true 值时执行语句。  

实例示范 
在下面的示例中,动态显示星期的方法之一。 
这里使用了Date对象,具体的用法我们在后面会介绍,这里只需要了解,myDate.getDay()默认是返回一个0到6之间数字。6表示星期六,0表示星期日。在第一帧输入下列的Action Script: 
myDate=new Date();  
iDay=myDate.getDay(); 
switch (iDay) { 
case 0: 
trace ("今天是星期天”); 
break; 
case 1: 
trace ("今天是星期一”); 
break; 
case 2: 
trace ("今天是星期二”); 
break; 
         case 3: 
trace ("今天是星期三”); 
break; 
         case 4: 
trace ("今天是星期四”); 
break; 
         case 5: 
trace ("今天是星期五”); 
break; 
         case 6: 
trace ("今天是星期六”); 
break; 
default: 
trace ("咦…今天是星期几呢?") 



2.2-5 do while 

语法规范 
do { 
statement(s) 
} while (condition) 

参数解释 
condition:要计算的条件。  
statement(s) :只要 condition 参数计算结果为 true 就会执行的语句。  

详细说明 
do while 是执行语句,指示只要条件为 true,就计算循环中的条件。  

实例示范 
下例是计算从1累加到100。并把结果从“输出窗口”中显示。请在第一帧输入如下Action Script: 
var i = 0; //声明一个变量并赋值 
var a = 0; 
do { 
a++; 
i = i+a; 
} while (a<100);
trace(i);


2.2-6 while 

语法规范 
while(condition) { 
statement(s); 


参数解释 
condition:每次执行 while 动作时都要重新计算的表达式。如果该语句的计算结果为 true,则运行 statement(s)。  
statement(s) :条件的计算结果为 true 时要执行的代码。  

详细说明 
while与do while的区别是,do while无论表达式的结果是否为true都会先执行一次循环体的语句,而while则先要判断条件成立才执行。只要该表达式为 true,就重复运行循环中的语句或语句序列。  
在运行语句块之前,首先测试 condition;如果该测试返回 true,则运行该语句块。如果该条件为 false,则跳过该语句块,并执行 while 动作语句块之后的第一条语句。  
通常当计数器变量小于某指定值时,使用循环执行动作。在每个循环的结尾递增计数器的值,直到达到指定值为止。此时,condition 不再为 true,且循环结束。  

实例示范 
下面的示例在主场景上复制6个MC(影片剪辑),每个MC的 x、y 位置,_alpha(透明度)和_xscale,_yscale(x,y的缩放)就是随机产生的。这里会用一个Random()函数,先简单介绍一下:random(num)是在0到num-1之间产生一个随机数 
k = 0; 
while(k < 7) {
duplicateMovieClip("iMc", "iMc" +k, k);
eval(“iMc”+k)._x=random(300);
eval(“iMc”+k)._y=random(300);
eval(“iMc”+k)._alpha=random(100);
eval(“iMc”+k)._xsacle=random(280);
eval(“iMc”+k)._ysacle=random(280);
k++;
}


2.2-7 for 

语法规范 
for(init; condition; next) { 
statement(s);  


详细说明 
for是一种循环结构,指示首先计算 init表达式一次,只要 condition 的计算结果为 true,则按照以下顺序开始循环序列,执行 statement,然后计算 next 表达式。 

参数解释 
init:通常为赋值表达式。此参数允许使用 var 语句。  
condition:计算结果为 true 或 false 的表达式。在每次循环迭代前计算该条件,当条件的计算结果为 false 时退出循环。  
next:一个在每次循环迭代后要计算的表达式;通常为使用递加(++)或递减(--)运算符的赋值表达式。  
statement(s) :在循环体内要执行的指令。  

实例示范 
例使用 for 在数组中添加元素:  
for(i=1; i<6; i++) {
array [i] = “www”+i+”.8doo.com”;
trace(array[i]);//在输出窗口中显示。
}
//输出的结果为:
www1.8doo.com
www2.8doo.com
www3.8doo.com
www4.8doo.com
www5.8doo.com


2.2-8break 

详细说明 
break出现在一个循环(for、for..in、do while 或 while 循环)中,或者出现在与 switch 动作内特定 case 语句相关联的语句块中。break 动作可命令 Flash 跳过循环体的其余部分,停止循环动作,并执行循环语句之后的语句。当使用 break 动作时,Flash 解释程序会跳过该 case 块中的其余语句,转到包含它的 switch 动作后的第一个语句。使用 break 动作可跳出一系列嵌套的循环。 

语法规范 
break  

实例示范 
下面的示例使用 break 动作退出一个循环,如果没有该动作,则该循环为无限循环。  
i = 0; 
while (true) { 
if (i >= 100) { 
break; 

i++; 





----

》是什么让我成熟?是什么让我不哭?《    


   
       

[关闭][返回]