flashas菜鸟入门教程下载
更新时间:2008年03月05日 22:05:32 作者:
这个教程很老了,是闪吧的 thymecd 发布的 ,由blackhill 整理成chm 图片和 swf都是全的!! 闪吧的下载已经失效了,所以我在网上找了很久总算找了一个下载地址 下面是第三章的内容 很适合刚刚接触as的朋友
3.4.2 比较
在ActionScript中比较两个事物是很容易的,要进行比较可以使用标准的数学符号,如=、<、>等。
1.相等
在ActionScript中用比较运算符对两个值进行比较。
要比较两个值是否相等,可以使用连在一起的两个等于符号(==)。单个等于符号(=)是用来为变量分配值的,并不是比较运算符。
如果要比较变量x的值是否等于7,就可以使用==符号,如下所示:
var x = 7;
trace(x == 7);
以上代码使用=符号将变量x设置为7,然后使用==符号对x和7进行比较。
测试这两行代码,输出窗口将显示“true”。如果将x设置为8或其他数,则会显示“false”。
==符号还可以用来比较两个字符串。如下所示:
var myString = "Hello ActionScript.";
trace(myString == "Hello ActionScript.");
trace(myString == "hello ActionScript.");
程序运行时,你将在输出窗口中看到一个“true”和一个“false”,因为在字符串中字母是要区分大小写的。
如果你要比较两个值是否不等,可以使用!=符号,它的意思是“不等于”。如下所示:
var a = 7;
trace(a != 9);
trace(a != 7);
第1个trace语句显示信息“true”,因为a确实不等于9;第2个trace语句显示信息“false”。
2.小于和大于
使用标准的数学符号<和>比较两数是否成小于或大于关系。举例如下:
var a = 9;
trace(a < 10);
trace(a > 5);
trace(a < 1);
你将从输出窗口中看到“true”、“true”和“false”。
符号<=或>=用于比较一个数是否小于等于或大于等于另一个数,如下所示:
var a = 9;
trace(a <= 9);
trace(a >= 9);
trace(a >= 7);
以上3个trace语句都将显示“true”。
3.4.3 运算
通过运算可以改变变量的值。分别使用算术运算符+、-、*、/执行加、减、乘、除操作。
如下所示的ActionScript将值为9的变量x加上一个数7:
var x = 9;
x = x + 7;
trace(x);
运算结果为16。
在ActionScript中执行运算可以使用一些简写方法,如+=运算符将其前后的值相加并将结果赋给它前面的变量。前面的脚本也可以写成如下的形式:
var x = 9;
x += 7;
trace(x);
++运算符与+=运算符类似,但它每执行一次,变量的值只增加1,如下面的例子:
var x = 9;
x++;
trace(x);
结果显示10。再看下面的例子:
var x = 9;
trace(x++);
trace(x);
结果是9和10。为什么呢?因为第1个trace语句输出x的当前值9,然后将x加1,输出x的新值10。
再试一下下面的脚本:
var x = 9;
trace(++x);
trace(x);
这次的结果为两个10。因为将++运算符置于变量前面,将先执行运算再返回变量的值。
同理,--运算符执行递减操作,-=运算符在变量当前值的基础上减去一个数,*=运算符在变量当前值的基础上乘上一个数,/=运算符在变量当前值的基础上除以一个数。
3.4.4 条件
既然现在你已经知道如何比较两个变量,你就可以将比较结果作为执行某些语句的条件。
1.if语句
if语句使你可以使用比较结果控制Flash影片的播放。如下所示的语句判断X是否等于9,如果比较结果为true,则让影片跳到第15帧:
if (x == 9) {
gotoAndPlay(15);
}
if语句以if开始,其后紧跟一个比较表达式,比较表达式通常用一对括号括起来,再后面即是用大括号括起来当比较结果为true时要执行的代码。
2.else
对if语句可以进行扩展,使用else执行条件不成立(比较表达式为false)时的代码,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else {
gotoAndPlay(16);
}
你也可以使用else if语句将if语句更推进一步,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else if (x == 10) {
gotoAndPlay(16);
} else if (x == 11) {
gotoAndPlay(20);
} else {
gotoAndPlay(25);
}
你可以让if语句想要多长就有多长,你也可以使用else if语句对别的变量进行比较,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else if (y<20) {
gotoAndPlay(16);
} else {
gotoAndPlay(25);
}
3.复合比较
你可以在一个if语句中对几个比较表达式的值进行判断,比如说你希望在x为9并且y为20时跳转到第10帧,可以使用如下所示的脚本:
if ((x == 9) && (y == 20)) {
gotoAndPlay(10);
}
逻辑与运算符&&将两个比较表达式联接在一起成为一个复合表达式,当两个表达式的值都为true时复合表达式的值才为true。每个比较表达式都需要添加独立的括号以便Flash能正确识别。在Flash的早期版本中使用and执行逻辑与运算,现在已推荐不使用。
你也可以使用逻辑或运算符||将两个比较表达式联接在一起成为一个复合表达式,只要有一个表达式的值为true,复合表达式的值就为true。如下所示:
if ((x == 7) || (y == 15)) {
gotoAndPlay(20);
}
在该脚本中,只要x为7或者y为15,或者两者都成立,结果都是跳转到第20帧。只有当两者都不成立时,才不会执行gotoAndPlay命令。在Flash的早期版本中使用or执行逻辑或运算,现在已推荐不使用。
3.4.5 循环
ActionScript中的循环要比if语句稍微复杂一点。它的循环结构与C语言中的循环结构几乎是一致的。
1.for循环结构
for结构是主要的循环结构,其样式如下所示:
for (var i = 0; i<10; i++) {
trace(i);
}
运行这段代码,随着局部变量I的改变,输出窗口中将显示数字0~9。
for结构中关键字for后面的括号中包含3个部分,它们之间用分号隔开。
第1部分声明一个局部变量,在本例中创建了一个局部变量i并将其设置为0。该部分只在循环体开始执行之前执行一次。
第2部分作为一个供测试的条件,在这里,测试i是否小于10。只要满足该条件,就会反复执行循环体。循环开始的时候i等于0,它是小于10的,所以循环得以执行。
第3部分是一个运算表达式,每完成一次循环都将执行该表达式一次。在这里,i每次递增1,然后转到第2部分对i的新值进行判断。
大括号中的部分是该循环的循环体,每执行一次循环都将执行其中的所有命令。我们来看看计算机是如何处理这个循环的。
声明变量i并将其值设为0;
判断条件i<10,结果为true,开始执行循环体;
现在i值为0,trace命令将i值发送到输出窗口,输出窗口显示0;
第1次循环结束,回到循环开始处,i在原来的基础上递增1,i值变为1;
判断条件i<10,结果为true,继续执行循环体;
trace命令将i的值1发送到输出窗口;
然后i再加1,这样循环下去直到执行完10次循环;
回到循环开始处,i在原来的基础上递增1,i值变为10;
判断条件i<10,结果为false,结束循环,开始执行for结构后面的代码。
2.其他形式的循环结构
for循环是最常用的一种循环结构,除for循环之外还有while循环和do…while循环。
while循环的例子如下所示:
i = 0;
while (i != 10) {
trace(i);
i++;
}
while循环看起来似乎要比for循环简单一些,从结构上看甚至与if语句还有一些相似。只要while后面括号中的条件成立,循环就会一直进行下去,所以在while循环体中需要有改变条件的语句,以使条件最终能够为false,完成循环,如上例中的i++。
与while循环相似的是do…while循环,如下所示:
i = 0;
do {
trace(i);
i++;
} while (i != 10);
除了测试条件的位置不同,while循环和do…while循环几乎是一样的。while循环在循环体之前测试条件,do…while循环在循环体之后测试条件,所以do…while循环至少要执行一次,而while循环有可能一次也不执行。
3.跳出循环
所有的循环结构都可以使用两个命令改变循环的执行流程,一个命令是break,另一个命令是continue。break命令终止循环,并跳到循环结构后面的语句处执行;continue命令终止本轮循环但不跳出循环,进而执行下一轮循环。
使用break和continue的例子都比较复杂,另外,还有一种特殊的for…in循环结构,在用到它们的时候我们再详细讲解。
3.4.6 函数
到现在为止,我们都是将脚本放在影片的第1帧中。如果程序相当复杂,再放在同一帧中就使脚本显得太庞大了。
函数使你可以组织需重用的代码,并放在时间轴中,例如:
function myFunction(myNum) {
var newNum = myNum+5;
return newNum;
}
函数以关键字function开头,function后面是函数名。与变量名相似,你可以指定自己的函数名,最好将函数名取得有意义一些。
函数名后面的括号容纳该函数的参数,所谓参数也是一个变量,它的值在调用该函数时予以指定。一个函数可以有若干参数,也可以没有参数。无论有没有参数,函数名后都应紧跟一对括号。
大括号中的部分是函数体,在函数体中创建了一个局部变量newNum,将myNum加5的结果设置为newNum的值。如果你将10作为参数传递给该函数,newNum的值就是15。
return命令仅用于函数中,使用return结束一个函数并返回函数值。此处,newNum是用return命令返回的函数值。
要使用函数,就需要调用它,如下所示:
var a = myFunction(7);
该语句创建一个新的局部变量a,将7作为参数调用函数myFunction,并将函数返回的结果作为变量a的值。
被调用的函数开始运行,创建一个局部变量myNum,将7作为myNum的值,然后执行函数体内的代码,使用return命令将newNum的值12返回给函数的调用者。这时,a的值变为12。
函数最大的作用体现在它可以重复使用。如下所示的3行代码产生3个不同的结果:
trace(myFunction(3));
trace(myFunction(6));
trace(myFunction(8));
运行以上代码,你将得到结果8、11和13。
使用函数还有一个好处就是可以只改变函数中的一处,从而影响所有调用该函数的命令。例如,将函数myFunction中的var newNum = myNum+5改成var newNum = myNum+7,上面3个调用该函数的命令的结果将变成10、13和15
3.4.7 点语法
ActionScript中一个很重要的概念是点语法。点语法也是很多面向对象的编程语言中用来组织对象和函数的方法。
假设你想求一个数的绝对值,Flash中有一个内置的绝对值函数,它包含在ActionScript的“对象”/“核心”/“Math”/“方法”中。要使用绝对值函数,首先要使用对象名,即Math,然后是方法名abs,它们之间用符号“.”隔开,具体表示方法如下所示:
var a = Math.abs(-7);
点语法的另一个用途是指定影片剪辑的属性。如下面的语句将影片剪辑myMC的_alpha(透明度)属性设置为50%:
myMC._alpha = 50;
你还可以在影片剪辑中使用点语法定位根(root)中的一个全局变量。如果你在主时间轴中创建了一个全局变量globelVar,而要在影片剪辑中使用这个全局变量,可以使用如下的语句:
trace(_root.globleVar);
如果你现在对对象、影片剪辑属性、层级之类的概念还不熟悉,不用着急,在以后的内容中我们将对它们进行更深入的讲解。
3.4.8 注释
我们可以在Flash的动作面板中添加注释,注释就是程序中并不参与执行的那些代码。它可以用来提醒你某些代码的作用,方便你组织和编写脚本。一个注释的例子如下所示:
// 将影片剪辑myMC的透明度设置为50%
myMC._alpha = 50;
该例的第1行是注释,注释以双斜线//开头,在//后面你可以输入任意的文本和符号,Flash会自动将注释部分用灰色标示。
上例是将注释专门放在一行中,你也可以将注释放在一行代码的后面,如下所示:
myMC._alpha = 50; // 将影片剪辑myMC的透明度设置为50%
只要使用//符号,Flash就会忽略它后面的部分。
3.5 调试脚本
无论在编写程序时有多么细心,每个程序员都避免不了要调试程序。要学好ActionScript,你就得熟练掌握调试程序的方法。在Flash MX中调试程序有3种方法:逻辑推断、向输出窗口发送信息和使用脚本调试器。
3.5.1 逻辑推断
许多程序错误其实很简单,也很容易解决,并不需要专门的调试工具。当程序出现错误时,你应对错误出现在哪里有一个大致的把握。
就算你不知道问题出在哪里,但通过细心阅读代码,你也有可能找到它。你可以思考一下,你要实现的效果是什么?现在的效果与你的设想有多大差距?是什么原因造成了这种差距?修改哪些部分有望改正这种错误?经过反复思考、修改和调试,你对程序的理解就会不断加深,你的程序也会越来越趋于正确。
没有人比你更了解你自己的程序,所以对你来说,你编写的程序最先宜采用逻辑推断的方法进行调试。还有一些错误或漏洞隐藏得比较深,这就需要借助于调试工具。
3.5.2 输出窗口
输出窗口是一个简单而实用的调试工具,在程序中可以使用trace命令将特定的信息发送到输出窗口中,这些信息可以帮助你了解代码的运行情况。
前面我们已经介绍过输出窗口,这里就不再赘述了。
3.5.3 调试器
调试器是一个更专业的调试工具,它是Flash MX中的一个窗口,通过调试器可以查看影片中的各种数据以及ActionScript代码的运行情况。
选择“控制”→“调试影片”命令,或按快捷键Ctrl+Shift+Enter,开始调试影片。与测试影片不同的是,调试影片时多了一个调试器窗口,如图3-4所示。
图3-4 调试器窗口
调试器窗口中包含很多窗格,在左边的窗格中可以检查Flash影片中不同类型的对象,右边的窗格显示影片中所有的ActionScript。
在调试器窗口中可以设置断点,断点即是为某行代码添加的一个标记,当调试影片时,影片会自动在断点处停止,允许你查看当前包括变量值在内的的影片状态。使用断点可以使你逐行地执行代码,对每行代码的运行结果进行观察和分析。
初学ActionScript的时候,你可能并不需要使用调试器;但是当你成长为一名经验丰富的程序员时,你就会发现它对你是非常有用的。
相关文章
SWF自适应布局技巧 (Rapid Flash Development)快速Flash开发
当我们开发全站式Flash应用时,希望呈现一个铺满浏览器屏幕的Flash.2008-12-12Flash两个上传示例ASP和PHP(原文件下载,包括后台程序)
Flash两个上传示例ASP和PHP(原文件下载,包括后台程序)...2006-11-11AS3.0 实例学习 熟悉tween以及tweenEvent的运用
AS3.0 实例学习 熟悉tween以及tweenEvent的运用...2007-12-12
最新评论