FlashActionScript20教程.docx

上传人:b****2 文档编号:17184771 上传时间:2023-04-24 格式:DOCX 页数:159 大小:594.86KB
下载 相关 举报
FlashActionScript20教程.docx_第1页
第1页 / 共159页
FlashActionScript20教程.docx_第2页
第2页 / 共159页
FlashActionScript20教程.docx_第3页
第3页 / 共159页
FlashActionScript20教程.docx_第4页
第4页 / 共159页
FlashActionScript20教程.docx_第5页
第5页 / 共159页
点击查看更多>>
下载资源
资源描述

FlashActionScript20教程.docx

《FlashActionScript20教程.docx》由会员分享,可在线阅读,更多相关《FlashActionScript20教程.docx(159页珍藏版)》请在冰豆网上搜索。

FlashActionScript20教程.docx

FlashActionScript20教程

第一课认识编程环境

ActionScript是针对FlashPlayer的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将程序写在什么地方呢?

在flash创作环境中,我们的程序写在"动作"面板中

而动作面板,又是与舞台上可以添加动作的对象相关联的.在ActionScript2.0中可以添加动作的对象有三种:

关键帧、影片剪辑元件、按钮元件.

编程实际就是向计算机下达指令,让计算机按我们的指令去完成一些任务.这就要求我们用计算机能看得懂的语言,这就是编程语言.ActionScript则是其中的一种.即然是语言,就同我们人类的语言一样它就有它自己的语法、语句、词汇等,这些东西就是我们要学习的内容.为了以后学习方便我们首先来学习一个语句:

trace()这个语句的作用是,flash在运行时,将括号中的内容显示出来.

上面我们提到,ActionScript2.0中可以添加动作的对象有三种:

关键帧、影片剪辑元件、按钮元件.也就是说,我们可以在这三个对象的动作面板中编写程序.具体怎样作呢?

我们来试试.新建一flash文档,如果你的flash版本是CS3,那么请选择ActionScript2.0文档,因为本教程介绍的是ActionScript2.0.为什么不介绍3.0?

因为sanbos发现很多人用的都是flash8.好,现在点击"插入"菜单,一"新建元件,建一个影片剪辑元件,随便画一个什么图形吧,将元件拖到舞台上;然后点击"窗口"一"公用库"一"按钮",然后随便选一个按钮拖到舞台上.这样,关健帧、影片剪辑、按钮都齐了.现在我们来看看怎样打开动作面板.在影片剪辑上点鼠标右键,然后在弹出菜单中点"动作",那么现在我们看到的就是动作面板了.

图1:

动作面板

我们在按钮元件上执行相同的操作,可以得到相同的结果

现在在时间轴的第1帧上,执行相同的操作,一样地打开了动作面板.动作面板的右边留出了一大片空白,等着你去编写程序,鼠标指针在那儿闪着,便勾起了我们编程的冲动.于是你说:

"我要编程了".上面我们不是介绍了一句,trace()吗?

我们何不偷偷地在这里输上一句,也好过把编程的隐.于是你在这里输上:

trace("我会编程了");

注意大小写,括号后面跟着分号.测试影片.你会看到一个输出窗口,里面有"我会编程了"几个字

是的,你已经会编程了.虽然只有一句,但它是一个ActionScript程序却是千真万确的.因此,这的确是一件值得祝贺的事情.来吧,让我们再说一次:

"编程其实很容易".

欣赏够以后,请关闭输出窗口,关闭播放窗口,回到几分钟之前,令我们自豪了一把的动作面板,我们来对它进行更进一步的认识.我们看到trace是蓝色的

是的,ActionScript内部的词汇在编程环境中都会以蓝色表示.那么这就是一个技巧,当你在输入程序时,如果输入ActionScript内部词汇时不是蓝色的,那么说明你输错了,那么你应该马上检查,是否有哪个字母输错了.现在问题出现了,你说我记不到那些词汇.在中学时英语考不出好成绩主要就是因为记不住单词.现在学习编程也记不住那些指令、语句,所以觉得编程好难.首先我还是说一句,你可能不太乐意听的话:

多练自然就记住了.你说:

我就是记不住,我是不是就不宜学习ActionScript编程呢?

NO,你看说英语并不难,我张口就来.我们将标淮降低,只要你看到这些指令,能够认识它就行.相比之下,知道有些什么指令比记住那些指令的拼写要重要得多.回到动作面板,你就会明白这个道理.看看动作面板的左半部分,这里几乎将所有的指令列了出来,你可以分门别类地去找到相关指令,如影片剪辑控制、时间轴控制、常用语句等,找到相应语句,双击它,于是它便自动写到右边的编程窗口中了.

是不是不用精确记住指令的拼写也能编程呢.在右边的编程窗口上面的工具栏最左边有一个加号,它具有与左边窗口相同的功能,不信你点它试试

通常在ActionScript编程时,我们可能会习惯将代码写在影片剪辑、按钮元件上,这就必须要事件驱动,它的格式是:

on(事件名称){

要执行的语句

}

现在我们来试一试,在动作面板中输入on(

这时你会发现弹出了一个窗口,将所有事件列了出来,你只需用鼠标选用所需要的事件双击它或回车,事件就会自动写到屏幕上.是不是很方便?

很多ActionScript程序都是对影片剪辑、按钮元件、文本框等对象进行操作,这需要在属性面板中为它们命名.良好的命名习惯,对我们编写程序会有很大的帮助.按照约定,影片剪辑元件的命名以_mc结尾,如my_mc,按钮元件则是以_btn结尾,文本框则是以_txt结尾.当然你完全可以不理采这些约定,随心所欲地为他们命名.我们说遵守这些约定,会对我们编程有所帮助.还是来试一试吧.建一影片剪辑元件,然后将它拖到舞台上,打开属性面板,为它取名为:

mymc_mc,在第一帧打开动作面板,输入:

mymc_mc.这时会弹出一个窗口,需要哪个指令选就是了.这些指令是按拼音顺序排列的.如果你能记住所需指令的前几个字母,你不妨直接输入,这时你会发现,很快就定位到了你所需要的指令.现在,我们把元件的名称改为mymc,不以_mc结尾,再到动作面板中输入,mymc.结果什么也没有发生,后面的指令只有自己输了,或者到左边窗口中去选.按钮元件和文本框也是相同的.你可以试一下.

这一课我们认识了动作窗口,这是我们ActionScript编程的地方,通过对智能化的编窗口的认识,应该消除了我们对编程的恐惧,让我们树立了学好ActionScript编程的信心

第二课_面向对象编程基础

ActionScript是一种面向对象的编程语言.通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它.而面向对象编程则是将程序分成各个块,分散到对象上.什么是对象?

对象就是我们在flash中能看到的一切东西.舞台是一个对象,时间轴、影片剪辑、按钮、文本、位图都是对象.在第一课中我们己说过:

在ActionScript2.0中我们可以将程序写在关键帧、影片剪辑、按钮元件上.即便是将程序完全写在关键帧上,它也必须要对象的事件驱动才能执行.

在理解了面向对象编程后,我们必需要对一些概念有所了解.事实上我们在上面对对象己经有了一定的了解.就如同我们的家中,所有的东西都可以叫做对象.比如,电视机,电冰箱,书桌,衣柜等等.很容易发现,这些东西,总有那么几个都有相似之处.比如,电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的.我们便把家里的东西分成了几类,并为每一类东西取上一个名字,比如,电器类、木器类等.这样我们就理解了另一个重要的概念一"类".

类是某一类型对象的概括或者说是模板,在ActionScript中,所有对象都是由类定义的.每个类都包括了三个重要的元素:

事件、属性、方法,这是我们必须要了解的三个重要概念.

事件:

在面向对象的编程中,并不是将程序按顺序交给计算机去执行,上面己经谈到了,程序被分散到了对象上.那么要计算机执行这些程序就需要事件来触发.通俗地讲就是:

当某件事情发生时就去做一些事情.这个某件发生的事情就是事件.在flash中,常常会放上一个按钮,比如"开始"按钮.程序设计者可能是这样的思路:

当按钮按下时就播放动画.那么"当按钮按下时"就是按钮对象的事件.在ActionScript2.O中,程序可以写在关键帧和元件上,事件在关健帧中和原件中的输写方法是不一样的.

事件在关健帧中的写法:

元件名称.事件名称=function(){

要执行的语句

....

}

事件在元件上的写法:

on(事件名称){

要执行的语句

.....

}

我们来做一个练习,在舞台上有一名为play_btn的按钮,现在要实现点击按钮动画就播放.新建flash文档,用椭园工具画一个园,然后,在40帧插入关健帧,将园移到另一位置,建立补间动画.新建一图层,从内部库中拖一个按钮到舞台上.打开属性面板,为按钮命名为play_btn.这里先介绍一个最常用的事件:

release,这是当放开鼠标按键时触发.实际也就是完成了一个点击动作时发生.

首先,在幀动作面板上写程序的方式完成练习:

新建图层,命名为action,当这不是必须的,你完全可以给它取个其它名字.打开幀动作面板,输入:

stop();//这是让动画停止播放,以便让我们点击按钮时才播放.

      play_btn.onRelease=function(){

play();//让动画开始播放

       }

测试影片,当点击按钮后,园形开始移动.

回到场景中,可以看到,在action图层时间轴的第1幀上,有一个a字,这说明在这一幀上有程序.

下面用在元件上写程序的方式来完成练习:

将幀动作除第一行的stop();外其它的程序全部删除.然后,在按钮元件上点右键,点击"动作",打开动作面板,输入如下代码:

          On(replease){

Play();

}

测试影片,得到相同的效果.

属性:

对象的属性可以理解为对象的特性,比如,大小,位置,颜色等.属性的输写规则是:

对象名称.属性名称 = 值;

下面介绍几个最常用的属性:

_x,_y:

分别是对象在舞上台的x,y坐标,这两个属性可以确定对象在舞台上的位置.

_xscale,_yscale:

分别是对象在舞台上沿x,y轴方向的缩放比例,实际上就是宽和高的缩放比例,以百分比表示,例如:

        my_mc._xscale=50;//这表示,元件my_mc的宽度缩小到原来的50%.

_alpha:

这是对象的透明度,取值为0-100.

_rotation:

这是对象的旋转度,以角度为单位.

_visible:

为是对象是否可见,可设置两个值,true(或1)和false(或0).比如要设置元件my_mc在舞台上不可见,可用:

       my_mc._visible=false;或 my_mc._visible=0;

相反要设置它在舞台上可见则用:

       my_mc._visible=true;或 my_mc._visible=1;

函数:

你可能要问,属性介绍完了该介绍方法了,你怎么介绍起函数来了?

原因很简单,方法也是函数.将函数附加到对象时,它就被称为方法.什么是函数呢?

将完成一个任务的若干语句封装起来,就叫函数.也许用例子来说明会好理解一些.比如,要完成一个开电视的任务,可能需要很多步骤,插上电源,开机,选频道,设置音量.我们将这些步骤封装起来,并给它取个名字"开电视"这就创建了一个开电视的函数.在ActionScript2.O中创建函数的格式是:

function函数名称(){

要执行的语句;

.....

}

比如要创建上面开电视函数,就这样写:

function开电视(){

插电源;

开机;

选频道;

设音量;

}

函数创建以后,要调用这个函数只需:

函数名()即可,比如我们要执行开电视的任务,只需输入:

开电视();

练习一下,我们来创建一个函数,然后调用它.打开第一帧的动作面板,输入:

functiontest(){

trace("我会写函数了");

}

test();

测试影片,在输出面板中,会出现"我会写函数了"几个字.这个练习我们首先创建了一个叫test的函数,然后用test();调用了它.

有时会有这样的情况,在函数内的语句中要用到数据,在创建函数的时候,却不能确定这些数据,比如每次调用会用不同的数据.这时就会用到参数,调用时,通过参数将数据传递给函数.格式如下:

创建函数的格式:

function函数名称(参数1,参数2,…){

要执行的语句

}

调用函数的格式:

函数名称(值1,值2,…);

还是以开电视为例:

创建开电视函数:

function开电视(频道,音量){

插电源;

开机;

选频道=频道;

设音量=音量;

}

调用函数:

开电视(12,28);

调用后,电视打开,并将频道设为12,音量设为28.

练习:

在帧动作面板中输入:

function

test(a,b){

c=a+b;

trace(c);

}

test(3,5);

测试影片,输出面板中应显示8.

了解了函数后,再来说方法就简单多了.上面已经说过,将函数附加到对象,就称为方法.AS中内置了很多方法,对于这些方法,我们不需要去了解它执行了些什么语句,只需要知道它可以完成的任务就行了.我们可以用:

对象名称.方法名称();

的格式来调用这些方法.比如有一个my_mc的影片剪辑元件,我们可以调用它的一些方法:

my_mc.stop();

my_mc.startDrag();

按钮:

在交互式的动画制作中,经常会用到按钮,比如我们会放上一个"播放"、"停止"、"重放"等按钮.有两种方式可以将按钮添加到舞台上,一种是从内部库中拖一个按钮到舞台上;另一种方法是自己创建一个按钮,这里主要介绍一下自己创建按钮的方法,因为常常有人会问:

为什么我创建的按钮点击它时不起作用?

这可能就是创建按钮时出了问题.现在点击"插入"菜单-"创建新元件",选择按钮,这时就进入按钮编辑窗口,可以看到,时间轴上只有4帧,分别是:

弹起,指针经过,按下,点击.特别要注意的是,点击那一帧,这一帧是点击的范围,因此这一帧是必须的,而且要注意的是,如果你的按钮是纯文字的,如Play,那么在这一幀应该画一个矩型,作为点击范围,不然,用户就只有点击到文字的笔划上才能触发按钮事件.在按钮编辑窗口中同样可以有很多层,比如第一层为图形,第二层为文字等.下面来制作一个按钮:

点击“插入”-“新建元件”,选择按钮,确定,这样就进入元件编辑窗口。

在弹起那一幀画一矩形,按钮大小吧。

黑色笔触,灰色填充。

在指针经过那一幀、按下幀幀、点击幀,插入关键幀。

在指针经过幀将矩形填充色变为深灰色。

在按下那幀,将边框线条粗细调为2。

新插入图层,建一静态文本框,输入“Play”.这样按钮就做好了。

现在可以将这个按钮从库中拖到舞台上,测试影片,看一下,当鼠标移到按钮上,点下按钮时的效果。

练习:

按钮的应用。

点击一下按钮,影片剪辑元件就向右移动一点。

新建一影片剪辑元件,就画一个园就行了。

将这个mc拖入舞台上,放到稍左一点的位置,打开属性面板,为其取名为:

my_mc。

新建一个按钮,然后拖入舞台,为其取名为:

yy_btn.新插入一层,命名为:

action,打开动作面板,输入:

yy_btn.onRelease=function(){

my_mc._x=my_mc._x+10;

}

测试影片,点击一次按钮,园就会向右移动一点。

第三课AS基本语法

在第一课中我们己经介绍过,ActionScript是一部语言,即然是语言它就有它自己的语法

一、ActionScript语句是区分大小写的:

在ActionScript中英语字母的大小写具有不同的意义的.我们来看一个例子:

打开时间轴第一帧的动作面板,输入:

Name="Sanbos";

name="假博士";

trace(Name);

测试影片,输出窗口将出现Sanbos,ActionScript区分开了Name和name.现在将代码改为:

Name="Sanbos";

Name="假博士";

trace(name);

测试影片,输出窗口将出现:

undefined,没有输出内容

二、ActionScript语句以分号作为每句的结束符号:

以上面的代码为例,把它写成一行:

Name="Sanbos";name="假博士";

trace(Name);

这时ActionScript将这一行看成三句指令,每句中间用分号分开.测试影片,输出窗口将出现Sanbos.那么将三句指令中间的分号去掉,那么,输出窗口会出现语法错误的提示.所以我们应该养成,每一个语句结束时,输入一个分号的习惯

三、关于点语法

在ActionScript中,应使用点(.)来访问对象的属性和方法.比如在舞台上有一个叫mymc_mc的影片剪辑元件,我们要访问它的属性和方法,就需要使用点,比如:

mymc_mc._x

在对象的名称后面输入一个".",然后输入其属性和方法的名称.

点的另一个作用是相当于路径,就相当于文件系统如:

c:

/windows/…中的"/".比如我们一个动画,主时间轴或者说舞台,在ActionScript2.O中被写为_root,舞台上有一影片剪辑元件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(release){

_root.my_mc.play();

}

四.注释

ActionScript中注释用来解释和说明语句的作用.而注释本身是不被执行的.注释有两种,一种是单行注释,一种是多行注释.单行注释是以//开始到本行未尾.如:

trace("单行注释");//这是单行注释

测试影片时从双斜杠开始以后的都不会执行.

另一种注释方式是多行注释,它是以/*开头,以*/结束的.如:

/*这是多行注释

在这个注释范围内的语句

都不会被执行*/

trace("多行注释");

数据类型:

计算机执行程序时处理的数据,与我们数学中的数字是不同的.数字只是数据的一种,在ActionScript中有很多种不同类型的数据,下面介绍一下几种主要的数据类型:

Number:

数字数据类型

uint:

正整数

int:

整数

String:

字符或者叫文本,String数据类型常常用引号括起来,如:

Mystring="abc"

Boolean:

布尔值,它只有两个值:

true、false,分别是真和假的意思.也就是"是"和"不是"的意思

Object:

可以里解为对象

数据类型的转换:

虽然数据有不同的类型,但各种类型之间是可以转换的.就象现在流行的变性手术一样,做了一二十年的男人,突然想做女人了,做个变性手术就行了.在ActionScript中就简单多了,下面来看看怎样转换

将数据转换为数值类型:

数值类型有三种,用下面三个函数可以将真它数据类型转换为数值:

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);

测试影片,在输出窗口会出现:

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.

如果要将布尔值转换为数值,那么ture将被转换成1,false则被转换为0.

如:

a=ture;

b=false;

c=int(ture);//c为1

d=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);//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(是)和false(不是).但上一句我们确用的0,那么在执行这句代码时,ActionScript会将0转换为false,然再执行.所以上句代码实际执行的是:

my_mc._visiblc=false;

这里可以看出,如果我们直接写成:

my_mc._visiblc=false;

计算机执行速度要快些,因为它不需要转换,当然你说,我写0要快些,那就随你高兴罗.

数据被存放在计算机内存之中,内存被分成很多个小房间,每个房间里存放一个或多个数据,为了便于使用这些数据,我们给这些房间取上一个名字,这就是我们要介绍的另一个重要概念:

变量:

变量用来存放数据,它是一小块内存的代号,如上所说,它就是内存中存放数据的小房间的名称,要创建一个变量,它的语法是:

var变量名称:

数据类型

比如:

vara:

Number

这就声明了一个变量a,它的数据类型是数值.运行下面的代码:

vara:

Number;

a=10;

trace(a);

输出面板将显示10.

vara:

Number;

a=b;

trace(a);

输出面板将显示:

undefined,这是不知道的类型.因为声明的变量a是数值类型,而给它赋值却是b,b不是数值,所以输出结果就只好说:

不知道你在说什么?

上面a=10中的"="号是赋值,即将10放到变量a中.在声明变量的同时就可以给它赋值,如:

vara:

Number=10;

你可能要说,前面你怎么就写的:

a=10;

是的,在ActionScript2.0中我们还可以直接写:

a=10,它实际上就是:

vara=10,但这是最后的晚餐了,在ActionScript3.0中就必须写var了.

上面介绍过,变量就象是内存中的一个房间,里面存放着数据.那个这个房间就是一人一间制.比如原来a房间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1