版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一课 认识编程环境ActionScript是针对Flash Player的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将程序写在什么地方呢?在flash创作环境中,我们的程序写在"动作"面板中而动作面板,又是与舞台上可以添加动作的对象相关联的.在ActionScript2.0中可以添加动作的对象有三种:关键帧、影片剪辑元件、按钮元件. 编程实际就是向计算机下达指令,让计算机按我们的指令去完成一些任务.这就要求我们用计算机能看得懂的语言,这就是编程语言.ActionScript则是其中的一种.即然是语言,就同我们人类的语言一样它就
2、有它自己的语法、语句、词汇等,这些东西就是我们要学习的内容.为了以后学习方便我们首先来学习一个语句: trace()这个语句的作用是,flash在运行时,将括号中的内容显示出来. 上面我们提到,ActionScript2.0中可以添加动作的对象有三种:关键帧、影片剪辑元件、按钮元件.也就是说,我们可以在这三个对象的动作面板中编写程序.具体怎样作呢?我们来试试.新建一flash文档,如果你的flash版本是CS3,那么请选择ActionScript2.0文档,因为本教程介绍的是ActionScript2.0.为什么不介绍3.0?因为sanbos发现很多人用的都是flash8.好,现在点击&quo
3、t;插入"菜单,一"新建元件,建一个影片剪辑元件,随便画一个什么图形吧,将元件拖到舞台上;然后点击"窗口"一"公用库"一"按钮",然后随便选一个按钮拖到舞台上.这样,关健帧、影片剪辑、按钮都齐了.现在我们来看看怎样打开动作面板.在影片剪辑上点鼠标右键,然后在弹出菜单中点"动作",那么现在我们看到的就是动作面板了. 图1:动作面板我们在按钮元件上执行相同的操作,可以得到相同的结果现在在时间轴的第1 帧上,执行相同的操作,一样地打开了动作面板.动作面板的右边留出了一大片空白,等着你去编写程序,鼠标指
4、针在那儿闪着,便勾起了我们编程的冲动.于是你说:"我要编程了".上面我们不是介绍了一句,trace()吗?我们何不偷偷地在这里输上一句,也好过把编程的隐.于是你在这里输上: trace("我会编程了");注意大小写,括号后面跟着分号.测试影片.你会看到一个输出窗口,里面有"我会编程了"几个字是的,你已经会编程了.虽然只有一句,但它是一个ActionScript程序却是千真万确的.因此,这的确是一件值得祝贺的事情.来吧,让我们再说一次:"编程其实很容易". 欣赏够以后,请关闭输出窗口,关闭播放窗口,回到几分钟之前,令
5、我们自豪了一把的动作面板,我们来对它进行更进一步的认识.我们看到trace是蓝色的是的,ActionScript内部的词汇在编程环境中都会以蓝色表示.那么这就是一个技巧, 当你在输入程序时,如果输入ActionScript内部词汇时不是蓝色的,那么说明你输错了,那么你应该马上检查,是否有哪个字母输错了.现在问题出现了,你说我记不到那些词汇.在中学时英语考不出好成绩主要就是因为记不住单词.现在学习编程也记不住那些指令、语句,所以觉得编程好难.首先我还是说一句,你可能不太乐意听的话:多练自然就记住了.你说:我就是记不住,我是不是就不宜学习ActionScript编程呢?NO,你看说英语并不难,我张
6、口就来.我们将标淮降低,只要你看到这些指令,能够认识它就行.相比之下,知道有些什么指令比记住那些指令的拼写要重要得多.回到动作面板,你就会明白这个道理.看看动作面板的左半部分,这里几乎将所有的指令列了出来,你可以分门别类地去找到相关指令,如影片剪辑控制、时间轴控制、常用语句等,找到相应语句,双击它,于是它便自动写到右边的编程窗口中了.是不是不用精确记住指令的拼写也能编程呢.在右边的编程窗口上面的工具栏最左边有一个加号,它具有与左边窗口相同的功能,不信你点它试试通常在ActionScript编程时,我们可能会习惯将代码写在影片剪辑、按钮元件上,这就必须要事件驱动,它的格式是: on(事件名称)
7、要执行的语句 现在我们来试一试,在动作面板中输入 on( 这时你会发现弹出了一个窗口,将所有事件列了出来,你只需用鼠标选用所需要的事件双击它或回车,事件就会自动写到屏幕上.是不是很方便?很多ActionScript程序都是对影片剪辑、按钮元件、文本框等对象进行操作,这需要在属性面板中为它们命名.良好的命名习惯,对我们编写程序会有很大的帮助.按照约定,影片剪辑元件的命名以_mc结尾,如my_mc,按钮元件则是以_btn结尾,文本框则是以_txt结尾.当然你完全可以不理采这些约定,随心所欲地为他们命名.我们说遵守这些约定,会对我们编程有所帮助.还是来试一试吧.建一影片剪辑元件,然后将它拖到舞台上,
8、打开属性面板,为它取名为:mymc_mc,在第一帧打开动作面板,输入:mymc_mc.这时会弹出一个窗口,需要哪个指令选就是了.这些指令是按拼音顺序排列的.如果你能记住所需指令的前几个字母,你不妨直接输入,这时你会发现,很快就定位到了你所需要的指令.现在,我们把元件的名称改为mymc,不以_mc结尾,再到动作面板中输入,mymc.结果什么也没有发生,后面的指令只有自己输了,或者到左边窗口中去选.按钮元件和文本框也是相同的.你可以试一下.这一课我们认识了动作窗口,这是我们ActionScript编程的地方,通过对智能化的编窗口的认识,应该消除了我们对编程的恐惧,让我们树立了学好ActionScr
9、ipt编程的信心第二课_面向对象编程基础ActionScript是一种面向对象的编程语言.通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它.而面向对象编程则是将程序分成各个块,分散到对象上.什么是对象?对象就是我们在flash中能看到的一切东西.舞台是一个对象,时间轴、影片剪辑、按钮、文本、位图都是对象.在第一课中我们己说过:在ActionScript2.0中我们可以将程序写在关键帧、影片剪辑、按钮元件上.即便是将程序完全写在关键帧上,它也必须要对象的事件驱动才能执行. 在理解了面向对象编程后,我们必需要对一些概念有所了解.事实上我们在上面对对象己经有了一定的了解.就如同我们的家
10、中,所有的东西都可以叫做对象.比如,电视机,电冰箱,书桌,衣柜等等.很容易发现,这些东西,总有那么几个都有相似之处.比如,电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的. 我们便把家里的东西分成了几类,并为每一类东西取上一个名字,比如,电器类、木器类等.这样我们就理解了另一个重要的概念一"类". 类是某一类型对象的概括或者说是模板,在ActionScript中,所有对象都是由类定义的.每个类都包括了三个重要的元素:事件、属性、方法,这是我们必须要了解的三个重要概念.事件:在面向对象的编程中,并不是将程序按顺序交给计算机去执行,上面己经谈到了,程序被分散到了对象上.那么
11、要计算机执行这些程序就需要事件来触发.通俗地讲就是:当某件事情发生时就去做一些事情.这个某件发生的事情就是事件.在flash中,常常会放上一个按钮,比如"开始"按钮.程序设计者可能是这样的思路:当按钮按下时就播放动画.那么"当按钮按下时"就是按钮对象的事件.在ActionScript2.O中,程序可以写在关键帧和元件上,事件在关健帧中和原件中的输写方法是不一样的. 事件在关健帧中的写法: 元件名称.事件名称 = function() 要执行的语句. 事件在元件上的写法: on(事件名称) 要执行的语句 . 我们来做一个练习,在舞台上有一名为play_bt
12、n的按钮,现在要实现点击按钮动画就播放.新建flash文档,用椭园工具画一个园,然后,在40帧插入关健帧,将园移到另一位置,建立补间动画.新建一图层,从内部库中拖一个按钮到舞台上.打开属性面板,为按钮命名为play_btn.这里先介绍一个最常用的事件:release,这是当放开鼠标按键时触发实际也就是完成了一个点击动作时发生首先,在幀动作面板上写程序的方式完成练习: 新建图层,命名为action,当这不是必须的,你完全可以给它取个其它名字 打开幀动作面板,输入: stop(); /这是让动画停止播放,以便让我们点击按钮时才播放 play_btn.onRelease = function() p
13、lay(); /让动画开始播放 测试影片,当点击按钮后,园形开始移动回到场景中,可以看到,在action图层时间轴的第幀上,有一个a字,这说明在这一幀上有程序下面用在元件上写程序的方式来完成练习:将幀动作除第一行的stop();外其它的程序全部删除然后,在按钮元件上点右键,点击动作,打开动作面板,输入如下代码: On(replease) Play(); 测试影片,得到相同的效果属性:对象的属性可以理解为对象的特性,比如,大小,位置,颜色等属性的输写规则是:对象名称属性名称值;下面介绍几个最常用的属性:_x,_y:分别是对象在舞上台的x,y坐标,这两个属性可以确定对象在舞台上的位置_xscale
14、,_yscale:分别是对象在舞台上沿x,y轴方向的缩放比例,实际上就是宽和高的缩放比例,以百分比表示,例如: my_mc._xscale = 50; /这表示,元件my_mc的宽度缩小到原来的 _alpha:这是对象的透明度,取值为-100. _rotation:这是对象的旋转度,以角度为单位 _visible:为是对象是否可见,可设置两个值,true(或)和false(或0).比如要设置元件my_mc在舞台上不可见,可用: my_mc._visible = false; 或my_mc._visible = 0; 相反要设置它在舞台上可见则用: my_mc._visible = true;
15、或my_mc._visible = 1;函数:你可能要问,属性介绍完了该介绍方法了,你怎么介绍起函数来了?原因很简单,方法也是函数.将函数附加到对象时,它就被称为方法.什么是函数呢?将完成一个任务的若干语句封装起来,就叫函数.也许用例子来说明会好理解一些.比如,要完成一个开电视的任务,可能需要很多步骤,插上电源,开机,选频道,设置音量.我们将这些步骤封装起来,并给它取个名字"开电视"这就创建了一个开电视的函数.在ActionScript2.O中创建函数的格式是: function 函数名称() 要执行的语句; . 比如要创建上面开电视函数,就这样写: function 开电
16、视() 插电源; 开机; 选频道; 设音量; 函数创建以后,要调用这个函数只需:函数名()即可,比如我们要执行开电视的任务,只需输入: 开电视(); 练习一下,我们来创建一个函数,然后调用它.打开第一帧的动作面板,输入: function test() trace("我会写函数了"); test(); 测试影片,在输出面板中,会出现"我会写函数了"几个字.这个练习我们首先创建了一个叫test的函数,然后用test();调用了它. 有时会有这样的情况,在函数内的语句中要用到数据,在创建函数的时候,却不能确定这些数据,比如每次调用会用不同的数据.这时就会用到
17、参数,调用时,通过参数将数据传递给函数.格式如下: 创建函数的格式: function 函数名称(参数1,参数2,) 要执行的语句 调用函数的格式: 函数名称(值1,值2,); 还是以开电视为例: 创建开电视函数: function 开电视(频道,音量)插电源; 开机; 选频道=频道;设音量=音量; 调用函数:开电视(12,28); 调用后,电视打开,并将频道设为12,音量设为28.练习:在帧动作面板中输入: function test(a,b) c=a+b; trace(c); test(3,5); 测试影片,输出面板中应显示 8 .了解了函数后,再来说方法就简单多了.上面已经说过,将函数附
18、加到对象,就称为方法.AS中内置了很多方法,对于这些方法,我们不需要去了解它执行了些什么语句,只需要知道它可以完成的任务就行了.我们可以用: 对象名称.方法名称(); 的格式来调用这些方法.比如有一个my_mc的影片剪辑元件,我们可以调用它的一些方法:my_mc.stop(); my_mc.startDrag();按钮:在交互式的动画制作中, 经常会用到按钮,比如我们会放上一个"播放"、"停止"、"重放"等按钮.有两种方式可以将按钮添加到舞台上,一种是从内部库中拖一个按钮到舞台上;另一种方法是自己创建一个按钮,这里主要介绍一下自己创建
19、按钮的方法,因为常常有人会问:为什么我创建的按钮点击它时不起作用?这可能就是创建按钮时出了问题.现在点击"插入"菜单-"创建新元件",选择按钮,这时就进入按钮编辑窗口,可以看到,时间轴上只有4帧,分别是:弹起,指针经过,按下,点击.特别要注意的是,点击那一帧,这一帧是点击的范围,因此这一帧是必须的,而且要注意的是,如果你的按钮是纯文字的,如Play,那么在这一幀应该画一个矩型,作为点击范围,不然,用户就只有点击到文字的笔划上才能触发按钮事件.在按钮编辑窗口中同样可以有很多层,比如第一层为图形,第二层为文字等.下面来制作一个按钮: 点击“插入”“新建元件”
20、,选择按钮,确定,这样就进入元件编辑窗口。在弹起那一幀画一矩形,按钮大小吧。黑色笔触,灰色填充。在指针经过那一幀、按下幀幀、点击幀,插入关键幀。在指针经过幀将矩形填充色变为深灰色。在按下那幀,将边框线条粗细调为2。新插入图层,建一静态文本框,输入“Play”.这样按钮就做好了。 现在可以将这个按钮从库中拖到舞台上,测试影片,看一下,当鼠标移到按钮上,点下按钮时的效果。练习:按钮的应用。点击一下按钮,影片剪辑元件就向右移动一点。新建一影片剪辑元件,就画一个园就行了。将这个mc拖入舞台上,放到稍左一点的位置,打开属性面板,为其取名为:my_mc。新建一个按钮,然后拖入舞台,为其取名为:yy_btn
21、.新插入一层,命名为:action,打开动作面板,输入: yy_btn.onRelease = function() my_mc._x = my_mc._x + 10; 测试影片,点击一次按钮,园就会向右移动一点。 第三课 AS基本语法在第一课中我们己经介绍过,ActionScript是一部语言,即然是语言它就有它自己的语法一、ActionScript语句是区分大小写的:在ActionScript中英语字母的大小写具有不同的意义的.我们来看一个例子:打开时间轴第一帧的动作面板,输入: Name="Sanbos" name="假博士"trace(Name)
22、; 测试影片,输出窗口将出现Sanbos,ActionScript区分开了Name和name.现在将代码改为: Name="Sanbos"Name="假博士"trace(name); 测试影片,输出窗口将出现:undefined,没有输出内容二、ActionScript语句以分号作为每句的结束符号:以上面的代码为例,把它写成一行:Name="Sanbos"name="假博士" trace(Name); 这时ActionScript将这一行看成三句指令,每句中间用分号分开.测试影片,输出窗口将出现Sanbos.那么将
23、三句指令中间的分号去掉,那么,输出窗口会出现语法错误的提示.所以我们应该养成,每一个语句结束时,输入一个分号的习惯三、关于点语法在ActionScript中,应使用点(.)来访问对象的属性和方法.比如在舞台上有一个叫mymc_mc的影片剪辑元件,我们要访问它的属性和方法,就需要使用点,比如: mymc_mc._x在对象的名称后面输入一个".",然后输入其属性和方法的名称.点的另一个作用是相当于路径,就相当于文件系统如:c:/windows/中的"/".比如我们一个动画,主时间轴或者说舞台,在ActionScript2.O中被写为_root,舞台上有一影片
24、剪辑元件my_mc,如果要写my_mc的_x属性,就应该这样写:_root.my_mc._x你可能会说,我常看到只写了my_mc._x,没有_root.这种情况在主时间轴的帧动作上的,程序本来就在_root上,就可以省略.如果在舞台上加一个按钮用来设置舞台上mc的_x属性,用_root.对象的层次更清楚一些。如果代码是写在mc内部,就要加上_root或_parent了。如在按钮上就要这样写: on(release)_root.my_mc._x=200; 又比如,做一个mc动画,在mc的第一帧写上stop();放在舞台上,然后在舞台上放一按钮来控制mc播放,那么在按钮上的程序就应该这样写:on(
25、release) _root.my_mc.play(); 四.注释ActionScript中注释用来解释和说明语句的作用.而注释本身是不被执行的.注释有两种,一种是单行注释,一种是多行注释.单行注释是以/开始到本行未尾.如:trace("单行注释");/这是单行注释测试影片时从双斜杠开始以后的都不会执行.另一种注释方式是多行注释,它是以/*开头,以*/结束的.如:/*这是多行注释 在这个注释范围内的语句都不会被执行*/ trace("多行注释");数据类型:计算机执行程序时处理的数据,与我们数学中的数字是不同的.数字只是数据的一种,在ActionScri
26、pt中有很多种不同类型的数据,下面介绍一下几种主要的数据类型:Number:数字数据类型 uint:正整数 int:整数 String:字符或者叫文本,String数据类型常常用引号括起来,如: Mystring="abc" Boolean:布尔值,它只有两个值:true、false,分别是真和假的意思.也就是"是"和"不是"的意思Object:可以里解为对象数据类型的转换:虽然数据有不同的类型,但各种类型之间是可以转换的.就象现在流行的变性手术一样,做了一二十年的男人,突然想做女人了,做个变性手术就行了.在ActionScript中
27、就简单多了,下面来看看怎样转换将数据转换为数值类型:数值类型有三种,用下面三个函数可以将真它数据类型转换为数值: Number() int() uint() 对于不能被转换为数值的数据如英文字母,汉字等,int(),uint()则返回0,而Number()则返回NaN. 练习:在帧动作面板中输入: a="123"b="abc" c=int(a);d=int(b); e=Number(b);trace("c="+c+newline+"d="+d+newline+"e="+e); 测试影片,在输出窗
28、口会出现: c= 123 d= 0 e=NaN 来看看这几句代码: a="123"这个"123"是用引号括起来的,那么它就是字符(String),它不是一个数值,而是由三个字符组成的字符串,它被读为:一二三. b="abc"更不用说是字符串了.c=int(a);将a从字符串转换为数值了,那么c就为123,被读为:一百二十三. d=int(b);很显然abc是不能被转换为数值的,当不能被转换为数值时,int()返回0,所以d为0. e=Number(b);当不能被转换为数值时,Number()返回NaN,所以e为NaN. 如果要将布尔值
29、转换为数值,那么ture将被转换成1,false则被转换为0.如: a=ture; b=false; c=int(ture);/c为1d=int(false);/d为0 另外int和uint类型都是整数,如果被转换的数据为小数点的,那么它们会只返回整数部分,如: a="3.5" b=int(a);/b为3 c=Number(a)/c为3.5这时我们立即就会想到可以用int(),uint()来取整,是的可以,不过需要注意的是它们是将小数点及后面的省略,而不是四舍五入将数据转换为字符串:用String()可以将数据转换为字符串.如: a=5;b =8; c =String(b)
30、;/c为"8" d=a+c; trace(d); 测试影片输出为58(读作:五八),这是因为c是字符,不能进行数学计算,只能是两个字符连接.如果将d=a+c;改为:d=a+b;测试时就输出13. 将数据转换为布尔值: 只介绍一种情况,将数值转换为布尔值.如果数值为0,则被转换为false,否则转换为true.仅管有Boolean()函数来转换,但我们应该不会用它,但这并不意味着我们不会用到这种转换,来看个例子: My_mc._visible=0; 这句让元件不可见的代码,我们经常用到,mc的_visible属性是是否可见的意思.设置这个属性只能用布尔值,即true(是)和f
31、alse(不是).但上一句我们确用的0,那么在执行这句代码时,ActionScript会将0转换为false,然再执行.所以上句代码实际执行的是: my_mc._visiblc=false;这里可以看出,如果我们直接写成: my_mc._visiblc=false; 计算机执行速度要快些,因为它不需要转换,当然你说,我写0要快些,那就随你高兴罗. 数据被存放在计算机内存之中,内存被分成很多个小房间,每个房间里存放一个或多个数据,为了便于使用这些数据,我们给这些房间取上一个名字,这就是我们要介绍的另一个重要概念: 变量:变量用来存放数据,它是一小块内存的代号,如上所说,它就是内存中存放数据的小房
32、间的名称,要创建一个变量,它的语法是: var 变量名称:数据类型 比如: var a:Number这就声明了一个变量a,它的数据类型是数值.运行下面的代码: var a:Number; a= 10; trace(a); 输出面板将显示10. var a:Number; a= b; trace(a); 输出面板将显示:undefined,这是不知道的类型.因为声明的变量a是数值类型,而给它赋值却是b,b不是数值,所以输出结果就只好说:不知道你在说什么? 上面a=10中的"="号是赋值,即将10放到变量a中.在声明变量的同时就可以给它赋值,如:var a:Number=10;
33、 你可能要说,前面你怎么就写的:a=10; 是的,在ActionScript2.0中我们还可以直接写:a=10,它实际上就是:var a=10,但这是最后的晚餐了,在ActionScript3.0中就必须写var了. 上面介绍过,变量就象是内存中的一个房间,里面存放着数据.那个这个房间就是一人一间制.比如原来a房间中住着10,现在将15放进去,15进去后,一脚就将10踢出去了.运行下面代码看看: var a:Number; a=10; a=15; trace(a); 结果显示为:15第四课 AS常用语句第一节 运算符AS常用语句一.运算符1. = 赋值运算符,它不是数学中的等于,而是将=号右边
34、的值赋给左边的变量. 2. 使用于字符串的运算符: 比较:= 等于. 用于比较两个字符串是否相等,如果相等则返回"true",否则返回false. 如: a="abc"b="abc" c="bcd" d=(a=b);/d为true f=(a=c);/f为false 大于 . = 大于等于 小于 = 小于等于 字符串的大小比较由小到大的顺序是:A一Z一a一z. +:连接运算: 如:a="abc" b="def" c=a+b;/c为:"abcdef" trac
35、e(c); 可以把上述代码复制到帧动作面板中,测试影片,试试. 又如:a="123" b=456;c=a+b;/c为:"123456" trace(c);而:a=123;b=456; c=a+b;/c为:579 trace(c);上面两个代码出现了不同的结果,这是因为第一段代码a被赋的值是被引号括起来的,那么它就是字符串,在字符串中+号是连接符号,不是数学中的加号.第二段代码,a、b被赋的值都没引号,AS就将它看着数字,在数字类型中+号就是数学中的加号.+= 这也是连接符号,这是将+=符号左边的字符串与右边的字符串连接,如: a="abc&qu
36、ot; b="def" a+=b;/这时a为abcdef 3.对数字使用运算符:+、-、*、/:这就是数学中的加减乘除. %:求模运算符,即求余数,如: a=7; b=2; c=a%b;/c为a除以b的余数1 +=、-=:分别是符号左边的数字加上或减去右边的数字,并将结果赋值给左边的变量.如:a=7; b=2; a+=b;/这时a为9 a-=b;/这时a为7 *=、/=:同理 +、-:递增递减运算符,即+或减1.如: a=7;a+;/这时a为8a-;/这时a为7 比效:=:等于 !=:不等于 :大于 =:大于等于 :小于 <=:小于等于第二节 条件语句二、条件语句if
37、 语句:如果怎么样,就做些什么事.可以把if理解为如果. 格式: if(条件表达式)要执行的语句 例:a=7;b=2; if (a=b) trace("是的"); 这个条件语句的意思是,如果a等于b,那么就输出"是的".将上面代码写到帧动作面板中,测试影片,发现并没有输出面板弹出.因为上面的语句是a等于b时才执行 trace("是的");,事实上现在a不等于b而是大于b,那么trace("是的");就不会执行.把代码改一下: a=7; b=2;if (ab) trace("是的"); 测试影片,
38、那就会看到输出窗口中的"是的". ifelse语句:这句是如果怎样就执行if后面的语句,如果不是这样就执行else后面的语句. 格式: if(条件表达式) 要执行的语句 else 要执行的语句 例: a=7;b=2; if(a=b)trace("a比b小或一样大"); else trace("a比b大"); 看看这个代码,如果a小于等于b那么就输出:"a比b小或一样大".否则,就输出:"a比b大".测试影片,我们可以看到:"a比b大". ifelse if:这个语句可以测试多
39、个条件.这样理解这个语句,如果怎样就干点什么,又如果怎样,又干点什么,再如果怎样. 还是这个例子: a =7; b=2; if(a<b) trace("a比b小"); else if("a=b") trace("a和b一样大"); else if(ab)trace("a比b大"); 这段代码意思是:如果a小于b那么输出:"a比b小"如果a等于b那么输出:"a和b一样大"如果a大于b那么输出:"a比b大".测试影片,输出是:"a比b大&quo
40、t;.switch语句:上面提到有要检测多个条件的情况,可以用多个else if,用switch语句也可以实现这个目的.格式: switch(表达式) case 表达式的值:要执行的语句 break; case 表达式的值:要执行的语句 break; default:要执行的语句 上面括号中的表达式也可以是一个变量,下面的大括号中可以有多个 case 表达式的值:,程序执行时会从第一个case开始检查,如果第一个case后的值是括号中表达式的值,那么就执行它后面的语句,如果不是括号中表达式的值,那么,程序就跳到第二个case检查,以此类推,直到找到与括号中表达式的值相等的case语句为止,并执
41、行该case后面的语句.你可能会注意到每一句case后面都有一句breake;这是跳出switch语句的意思,即当找到相符的case,并执行相应的语句后,程序跳出switch语句,不再往下检测.以免发生落空的错误.可能会有这样的情况,所有的case语句后的值都与表达式的值不相符,那么就应该用default: 语句,这时程序就会执行default: 后的语句.如果你确定不会出现这种情况,那么可以不要default: 语句. 例1: a=7;b=2; c=a+b; switch(c) case 5: trace("小了");breake;case 12:trace("
42、大了"); breake; case 9: trace("对了"); breake; 测试影片,输出句"对了".例2.a=7; b=2; switch(a+b) case 5: trace("小了"); breake; case 12: trace("大了"); breake; case 8: trace("还是小了"); breake; default: trace("都没算对"); 测试影片输出为:"都没算对". 逻辑运算符:逻辑运算符在运算
43、符那一节没有介绍,是因为它多半用在条件语句中,所以我们在这一节介绍.在上面的条件表达式中,都是单一的条件,比如是否大于是否小于等,实际上我们经常都可能用到复合条件,比如大小多少并且小于多少,大于多少或者小于多少等.在这样的复合条件语句中,有两个词:并且、或者,它们的符号: && 并且 丨丨 或者 并且是指两个条件都成立时为真,或者是指只要有一个条件成立时为真.例1: a=7; if(a5)&&(a<10) trace("正确"); 测试影片,将输出"正确".因为a=7的确即大于5又小于10,条件为真. 例2:a=7;
44、if(a5)&&(a10) trace("正确"); 测试影片,没有输出.说明 trace("正确");这句没执行.因为a5成立,而a10不成立,两个条件只有一个为真,整个条件则为假. 例3.a=7; if(a5)|(a10) trace("正确"); 这个例子用的是"|"或者语句,只要有一个条件为真,整个条件表达式为真,测试影片,将输出"正确". 练习:猜数游戏下面我们来做一个练习,猜数游戏,将上一节运算符及本节条件语句进行综合应用.游戏是由程序产生一个0-100的随机数,然后
45、由用户来猜,程序根据用户猜的数与所产生的随机数进行比较,根据比较结果,给用户提示,直到用户猜中为止,并记录用户所猜次数. 为完成这个练习,我们先介绍一个函数:random(),这个函数将产生一个由0到括号中的数减1的整数.如: a=random(50),那么a的值为0到49之间的一个整数. 现在来做这个练习:新建一flash文件,用文本工具在舞台的上半部居中画一个文本框,在里面输入:”请猜一个0-100之间的数字:”;打开属性面板,设置文本框为静态文本,设置好文本字体的大小和颜色. 在这个文本框的下边,再画一个文本框,打开属性面板,设置文本框为动态文本,在变量框中输入c,这样变量c就代表这个文
46、本框的内容,我们就可以用c来读取和设置这个动态文本框的内容.动态文框是在运行时可以给文本设置值的文本框.关于文本框的的知识,在后面将有专门的课程介绍,这里了解这么多就行了. 在动态文本框的下面,再画一个文本框,打开属性面板,设置文本框为输入文本.将在文本框周围显示边框按钮点下.在变量框中输入s.输入文本框是在运行时,用户可以在其中输入内容人. 下面新建两个按钮,一个标签为”确定”,一个标签为”重猜”.按钮的做法请参阅第二课.将两个按钮放到舞台上,最下面.打开属性面板,”确定”按钮命名为”qd_btn”,”重猜”按钮”命名为”cc_btn”. 新建一层,命名为”action”用来写代码.点中第一
47、帧,点右键,打开动作面板,开始写代码: 首先声明一个变量,用来存放0-100间的随机数,所以第一行代码为: var a = random(101);然后声明一个变量,用来存放猜的次数,现在还没猜,所以给它赋值为0,第二行代码为: var cs:Number = 0; 下面使用条件语句,来比较用户输入的数的产生的随机数: qd_btn.onRelease = function() /当点击确定按钮时,执行下面的语句.cs+; /猜的次数增加1 if (s>a) /如果猜的数大于随机数.c = "大了点" /动态文本框提示”大了点”. else if (s=a) /如果猜
48、对了,根据猜的次数给出相应结果. if(cs<=5) /如果猜的次数在5次以内c = "哇,你只猜了" + cs + "次就猜对了,真历害!" /给出表扬,注意这里用到了,字符串的连接. else / 如果不只猜5次. c="猜对了!你猜了"+cs+"次" /提示猜对了,并给出猜的次数. else if (s<a) /如果猜的数字小于随机数 c="小了点"/提示”小了点” 最后,来写重猜的代码: cc_btn.onRelease = function () /当点击重猜按钮时执行以下
49、语句 a = random(101);/重新产生随机数 cs = 0;/将猜的次数设为0 s=""清空输入文本框 c=""清空提示文本 作业:制作猜数游戏第三节 循环语句for循环:格式:for(初值;条件表达式;增值) 要执行的语句 这个语句,首先给一个变量设定一个初始值,然后将这个初始值带入条件表达式,如果条件表达式为真,则执行大括号中的语句,并且按括号中增值表达式对变量的值进行增减;然后再次带入条件表达式,如果为真则再次执行大括号中的语句.,这样直到条件表达式为假为止. 例:var a=0; for(var i=0;i10;i+) a += i;
50、trace(a); 我们来看看最后输出的a是多少.程序开始时,a等于0,然后进入for循环,循环开始i等于0,条件表达式i<10成立,那么执行a+=i,此时a、 i均为0,那么a为0,然后执行增值i+,则i为1,再检测条件表达式i10仍成立,执行a+=i,则a为1;执行i+,i为2,这样反复循环,直到i为10时,条件表达式i10不成立,停止循环.明显可以看出循环进行了10次,这时a是多少呢?测试影片时输出为45forin循环:这是遍历或者叫循环访问一个组对象中的成员.比如影片剪辑的子级、对象的属性、数组等.由于数组等在前面还没有介绍,因此我们将forin循环放到下一课介绍数组时再祥细介绍
51、while循环:有点类似if语句,只要条件成立就执行相应语句. 格式: while(条件表达式)要执行的语句计数语句 当条件表达式为真时,执行大括号中的语句,执行计数语句,然后用计数语句的结果再次检测条件表达式,如此反复循环.直到条件表达式为假为止.这里需要注意的是,如果没有计数语句,或者计数语句的结果永远不能使条件表达式为假,那么循环将水远无休止地反复,这就形成了一个死循环,我们在编程的过程中一定要避免这种情况. 例1:下面的代码是一个死循环,请不要测试. var a=0; while(a<10) trace(a); 看看这段代码,程序执行时a等于0,然后进入循环,条件表达式a10成立
52、,执行trace(a),输出0,然后再检查条件表达式,因为没有计数语句,a没发生变化,条件表达式仍成立,于是又输出一个0,然后又反复,一直不停地输出0,无休无止,直到天荒地老. 例2:下面的代码是一个死循环,请不要测试.var a=0; while(a<10) trace(a); a-; 这一例加上了计数语句a-,但a的初始值为0,每一个循环它减1,这样条件表达式a<10也是永远为真,因此循环也是永不停息,直到地老天荒.例3: var a=0;while(a<10)trace(a); a+; 这一例将计数语句改为a+,这样每一循环,a加1,当10个循环后,a为10,条件表达式
53、a<10为假,循环停止.测试本例我们会在输出面板中看到: 0 1 2 9dowhile循环:这个循环实际和while循环是一样的,只是它先执行一次语句,然后再检测条件语句,而while循环是先检测条件语句再执行大括号内的语句. dowhile循环的格式为: do 要执行的语句计数语句while(条件表达式);第五课 数组 在前面介绍变量时,我们说将内存分成无数个房间,用来存放数据.每个房间中只能住一个数据,比如房间中原来住着5,后来8又住进这个房间,于是一脚将5踢了出去.现在可能有这种情况,就是8住进来后,不把5踢出去,两个合租.事实上这也是允许的,这种情况就被称
54、为数组.在房间中的各个成员被称为元素, 这一些元素的数据类型不一定是相同的.也就是说在现在开放的年代,男女合租是允许的.比如在房间中又住进去a,它是字符与前面的5、8数字的数据类型就不相同.房间中每个元素都有一个编号,我们在引用这些元素时,只需用编号就行.就如在监狱中的囚犯一样,你叫道:3365出来.于是号数为3365的囚犯出来了.咋一不小心就将数组中的元素整进监狱了呢?需要注意的是,数组中的元素编号是从0开始的.比如上面我们建的数组,5是0号、8是1号、a是2号.创建数组:可以用下列格式创建数组格式一:var 数组名:Array=new Array(元素1,元素2,)格式二: var 数组名
55、:Array=new Array(); 数组名0=值; 数组名1=值; 例:我们上面建的数组,这样写var myarray:Array=new Array(5,8,a); 或: var myarray:Array=new Array(); myarray0=5; myarray1=8; myarray2="a"数组元素的引用 创建数组后,就可以引用其元素了,格式为:数组名称元素编号; 比如要引用上述数组第一个元素的值就可以这样写:myarray0 可以测试一下下面这段代码: var myarray:Array=new Array(5,8,a);var b=myarray0;
56、 trace(b); 输出应该是5. 数组是对象,即是对象,那么就有它自已的属性和方法,下面我们就来认识一下:数组的属性:只介绍一个属性, length:这是指组数的元素的数量.如上面的数组,myarray一共有三个元素5,8,a,那么这个数组的length属性为3例1: var myarray:Array=new Array(5,8,a);b = myarray.length; trace(b); 输出结果为3.For.in循环:在上一课介绍循环语句时,说过for.in循环留到这一课来介绍.这个循环是遍历一个集合的所有对象的循环,比如遍历数组元素.就是说一个一个地方问每一个元素.数组中有几个
57、元素它就循环几次例2: var myarray:Array=new Array(5,8,"a"); for (var i in myarray) b = myarray; trace(b); 输出结果为:a 8 5 例3:用for循环和length属性也可以实现遍历数组:var myarray:Array=new Array(5,8,"a") for(var i=0;i<myarray.length;i+) b = myarray; trace(b); 输出结果为:5,8,a 可以看出,这两个循环都是将数组中的循环方问了一遍,只是结果的顺序不同.例2中应用了数组的length属性,这个属性最常用的就是用在for循环中,在以后的课程中会经常用到.数组的方法:concat( ):将参数中指定的元素与数组中的元素连接,并创建新的数组。如果 value 参数指定的是数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗服务前台工作心得体会
- 交通运输行业司机技能提升总结
- 涂装课程设计CAD代画
- 2024年度消防设备设施维护与优化劳务分包合同3篇
- 2024年乡村振兴苗木种植土地流转合同3篇
- 现代软件工程课程设计
- 新学期工作计划模板汇编八篇
- 2024年体育设施融资租赁合同七大关键条款分析3篇
- 2025年山东淄博沂源县卫生健康系统事业单位招聘高层次急需紧缺专业技术人才78人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁市兖州区事业单位招聘(101人)管理单位笔试遴选500模拟题附带答案详解
- GB/T 22517.2-2024体育场地使用要求及检验方法第2部分:游泳场地
- 10以内连加减口算练习题完整版89
- GB/T 44460-2024消费品质量分级导则卫生洁具
- 学法指导课件 2024-2025学年统编版七年级历史上册
- 弘扬科学精神激发创新活力-2024全国科普日主题宣教课件
- 大学《中国古代文学史》期末复习题库
- 个人代开税票合同协议书
- 冀教版数学五年级上册7.2 综合与实践 估算玉米收入
- DL∕T 2558-2022 循环流化床锅炉基本名词术语
- DL∕T 523-2017 化学清洗缓蚀剂应用性能评价指标及试验方法
- 抖音账号归属合同范本
评论
0/150
提交评论