认识编程环境.docx
- 文档编号:12024720
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:44
- 大小:48.74KB
认识编程环境.docx
《认识编程环境.docx》由会员分享,可在线阅读,更多相关《认识编程环境.docx(44页珍藏版)》请在冰豆网上搜索。
认识编程环境
一、认识编程环境
ActionScript是针对FlashPlayer的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将程序写在什么地方呢?
在flash创作环境中,我们的程序写在"动作"面板中,而动作面板,又是与舞台上可以添加动作的对象相关联的.在ActionScript2.0中可以添加动作的对象有三种:
关键帧、影片剪辑元件、按钮元件.
编程实际就是向计算机下达指令,让计算机按我们的指令去完成一些任务.这就要求我们用计算机能看得懂的语言,这就是编程语言.ActionScript则是其中的一种.即然是语言,就同我们人类的语言一样它就有它自己的语法、语句、词汇等,这些东西就是我们要学习的内容.上面我们提到,ActionScript2.0中可以添加动作的对象有三种:
关键帧、影片剪辑元件、按钮元件.也就是说,我们可以在这三个对象的动作面板中编写程序.具体怎样作呢?
我们来试试.我们就用trace()这个语句来试下编程,这个语句的作用是,flash在运行时,将括号中的内容显示出来.
新建一flash文档,如果flash版本是CS3,请选择ActionScript2.0文档,因为现在学习的是ActionScript2.0.点击"插入"菜单,一"新建元件,建一个影片剪辑元件,随便画一个什么图形吧,将元件拖到舞台上;然后点击"窗口"一"公用库"一"按钮",然后随便选一个按钮拖到舞台上.这样,关健帧、影片剪辑、按钮都齐了.
找开动作面板,
在关键帧内输入如下代码:
trace("关键帧上的代码有用了");字符串
在影片剪辑上输入如下代码:
onClipEvent(mouseDown){
trace("影片剪辑上的代码有用了");
};
在按钮上输入如下代码:
on(release){
trace("按钮上的代码有用了");
};
注意大小写,括号后面跟着分号.测试影片.你会看到一个输出窗口,里面有""里的内容。
回到动作面板,对它进行更多的认识.看到trace是蓝色的,ActionScript内部的词汇在编程环境中都会以蓝色表示.那么这就是一个技巧,当你在输入程序时,如果输入ActionScript内部词汇时不是蓝色的,那么说明你输错了,那么你应该马上检查,是否有哪个字母输错了.
通常在ActionScript编程时,我们可能会习惯将代码写在影片剪辑、按钮元件上,这就必须要事件驱动,它的格式是:
on(事件名称){
要执行的语句
}
现在我们来试一试,在动作面板中输入on(,这时你会发现弹出了一个窗口,将所有事件列了出来,你只需用鼠标选用所需要的事件双击它或回车,事件就会自动写到屏幕上.是不是很方便?
很多ActionScript程序都是对影片剪辑、按钮元件、文本框等对象进行操作,这需要在属性面板中为它们命名.良好的命名习惯,对我们编写程序会有很大的帮助.按照约定,影片剪辑元件的命名以_mc结尾,如my_mc,按钮元件则是以_btn结尾,文本框则是以_txt结尾.当然你完全可以不理采这些约定,随心所欲地为他们命名.我们说遵守这些约定,会对我们编程有所帮助,在编程时会出现自动提示功能。
这一课我们认识了动作窗口,这是我们ActionScript编程的地方,通过对智能化的编窗口的认识,应该消除了我们对编程的恐惧,让我们树立了学好ActionScript编程的信心
二、面向对象编程基础
ActionScript是一种面向对象的编程语言.通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它.而面向对象编程则是将程序分成各个块,分散到对象上.什么是对象?
对象就是我们在flash中能看到的一切东西.舞台是一个对象,时间轴、影片剪辑、按钮、文本、位图都是对象.
在理解了面向对象编程后,我们必需要对一些概念有所了解.事实上我们在上面对对象己经有了一定的了解.就如同我们的家中,所有的东西都可以叫做对象.比如,电视机,电冰箱,书桌,衣柜等等.很容易发现,这些东西,总有那么几个都有相似之处.比如,电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的.我们便把家里的东西分成了几类,并为每一类东西取上一个名字,比如,电器类、木器类等.这样我们就理解了另一个重要的概念一"类".
类是某一类型对象的概括或者说是模板,在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();
按钮:
在交互式的动画制作中,经常会用到按钮,比如我们会放上一个"播放"、"停止"、"重放"等按钮.有两种方式可以将按钮添加到舞台上,一种是从内部库中拖一个按钮到舞台上;另一种方法是自己创建一个按钮。
练习:
按钮的应用。
点击一下按钮,影片剪辑元件就向右移动一点。
新建一影片剪辑元件,就画一个园就行了。
将这个mc拖入舞台上,放到稍左一点的位置,打开属性面板,为其取名为:
my_mc。
新建一个按钮,然后拖入舞台,为其取名为:
yy_btn.新插入一层,命名为:
action,打开动作面板,输入:
yy_btn.onRelease=function(){
my_mc._x=my_mc._x+10;
}
测试影片,点击一次按钮,园就会向右移动一点。
三、AS基本语法
在第一课中我们己经介绍过,ActionScript是一部语言,即然是语言它就有它自己的语法。
1、ActionScript语句是区分大小写的:
在ActionScript中英语字母的大小写具有不同的意义的.我们来看一个例子:
打开时间轴第一帧的动作面板,输入:
Name="Sanbos";
name="假博士";
trace(Name);
测试影片,输出窗口将出现Sanbos,ActionScript区分开了Name和name.现在将代码改为:
Name="Sanbos";
Name="假博士";
trace(name);
测试影片,输出窗口将出现:
undefined,没有输出内容
2、ActionScript语句以分号作为每句的结束符号:
以上面的代码为例,把它写成一行:
Name="Sanbos";name="假博士";
trace(Name);
这时ActionScript将这一行看成三句指令,每句中间用分号分开.测试影片,输出窗口将出现Sanbos.那么将三句指令中间的分号去掉,那么,输出窗口会出现语法错误的提示.所以我们应该养成,每一个语句结束时,输入一个分号的习惯
3、关于点语法
在ActionScript中,应使用点(.)来访问对象的属性和方法.比如在舞台上有一个叫mymc_mc的影片剪辑元件,我们要访问它的属性和方法,就需要使用点,比如:
mymc_mc._x=120
mymc_mc._y=240
在对象的名称后面输入一个".",然后输入其属性和方法的名称.
点的另一个作用是相当于路径,就相当于文件系统如:
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();
}
4.注释
ActionScript中注释用来解释和说明语句的作用.而注释本身是不被执行的.注释有两种,一种是单行注释,一种是多行注释.单行注释是以//开始到本行未尾.如:
trace("单行注释");//这是单行注释
测试影片时从双斜杠开始以后的都不会执行.
另一种注释方式是多行注释,它是以/*开头,以*/结束的.如:
/*这是多行注释
在这个注释范围内的语句
都不会被执行*/
trace("多行注释");
5、数据类型:
计算机执行程序时处理的数据,与我们数学中的数字是不同的.数字只是数据的一种,在ActionScript中有很多种不同类型的数据,下面介绍一下几种主要的数据类型:
Number:
数字数据类型
uint:
正整数
int:
整数
String:
字符或者叫文本,String数据类型常常用引号括起来,如:
Mystring="abc"
Boolean:
布尔值,它只有两个值:
true、false,分别是真和假的意思.也就是"是"和"不是"的意思
Object:
可以里解为对象
6、变量
数据被存放在计算机内存之中,内存被分成很多个小房间,每个房间里存放一个或多个数据,为了便于使用这些数据,我们给这些房间取上一个名字,这就是我们要介绍的另一个重要概念:
变量:
变量用来存放数据,它是一小块内存的代号,如上所说,它就是内存中存放数据的小房间的名称,要创建一个变量,它的语法是:
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;
四、AS常用语句
1、运算符
=赋值运算符,它不是数学中的等于,而是将=号右边的值赋给左边的变量.
==比较运算符.用于比较两个字符串是否相等,如果相等则返回"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"
trace(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";
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为8
a--;//这时a为7
比效:
==:
等于
!
=:
不等于
〉:
大于
〉=:
大于等于
〈:
小于
<=:
小于等于
2、条件语句
if语句:
如果怎么样,就做些什么事.可以把if理解为如果.
格式:
if(条件表达式){
要执行的语句
}
例:
a=7;
b=2;
if(a==b){
trace("是的");
}
这个条件语句的意思是,如果a等于b,那么就输出"是的".将上面代码写到帧动作面板中,测试影片,发现并没有输出面板弹出.因为上面的语句是a等于b时才执行trace("是的");,事实上现在a不等于b而是大于b,那么trace("是的");就不会执行.把代码改一下:
a=7;
b=2;
if(a〉b){
trace("是的");
}
测试影片,那就会看到输出窗口中的"是的".
if…else语句:
这句是如果怎样就执行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大".
if…elseif:
这个语句可以测试多个条件.这样理解这个语句,如果怎样就干点什么,又如果怎样,又干点什么,再如果怎样….
还是这个例子:
a=7;
b=2;
if(a
trace("a比b小");
}
elseif("a==b"){
trace("a和b一样大");
}elseif(a〉b){
trace("a比b大");
}
这段代码意思是:
如果a小于b那么输出:
"a比b小";如果a等于b那么输出:
"a和b一样大";如果a大于b那么输出:
"a比b大".测试影片,输出是:
"a比b大".
switch语句:
上面提到有要检测多个条件的情况,可以用多个elseif,用switch语句也可以实现这个目的.
格式:
switch(表达式){
case表达式的值:
要执行的语句
break;
case表达式的值:
要执行的语句
break;
…
default:
要执行的语句
}
上面括号中的表达式也可以是一个变量,下面的大括号中可以有多个case表达式的值:
程序执行时会从第一个case开始检查,如果第一个case后的值是括号中表达式的值,那么就执行它后面的语句,如果不是括号中表达式的值,那么,程序就跳到第二个case检查,以此类推,直到找到与括号中表达式的值相等的case语句为止,并执行该case后面的语句.你可能会注意到每一句case后面都有一句breake;这是跳出switch语句的意思,即当找到相符的case,并执行相应的语句后,程序跳出switch语句,不再往下检测.以免发生落空的错误.可能会有这样的情况,所有的case语句后的值都与表达式的值不相符,那么就应该用default:
语句,这时程序就会执行default:
后的语句.如果你确定不会出现这种情况,那么可以不要default:
语句.
例1:
a=7;
b=2;
c=a+b;
switch(c){
case5:
trace("小了");
breake;
case12:
trace("大了");
breake;
case9:
trace("对了");
breake;
}
测试影片,输出句"对了".
例2.
a=7;
b=2;
switch(a+b){
case5:
trace("小了");
breake;
case12:
trace("大了");
breake;
case8:
trace("还是小了");
breake;
default:
trace("都没算对");
}
测试影片输出为:
"都没算对".
逻辑运算符:
逻辑运算符在运算符那一节没有介绍,是因为它多半用在条件语句中,所以我们在这一节介绍.在上面的条件表达式中,都是单一的条件,比如是否大于是否小于等,实际上我们经常都可能用到复合条件,比如大小多少并且小于多少,大于多少或者小于多少等.在这样的复合条件语句中,有两个词:
并且、或者,它们的符号:
&&并且
丨丨或者
并且是指两个条件都成立时为真,或者是指只要有一个条件成立时为真.
例1:
a=7;
if((a〉5)&&(a<10)){
trace("正确");
}
测试影片,将输出"正确".因为a=7的确即大于5又小于10,条件为真.
例2:
a=7;
if((a〉5)&&(a〉10)){
trace("正确");
}
测试影片,没有输出.说明trace("正确");这句没执行.因为a〉5成立,而a〉10不成立,两个条件只有一个为真,整个条件则为假.
例3.
a=7;
if((a〉5)|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 认识 编程 环境