Flash语言

Flash脚本语言基础
脚本语言的使用使得flash的功能更加强大,具有良好的交互性,运用更加灵活。Flash的action script主要是从Javascript操作平台扩展延伸并重新编辑而来的,是一种高度的面向对象性的语言,它有一套标准的执行操作和灵巧的图形和声音编辑能力,使flash具有强大的多媒体处理功能。脚本语言介于HTML和Java、C等编程语言之间。HTML通常用于格式化或链接文本,而编程语言通常向机器发出一系列指令,脚本语言的函数与编程语言更想象一些,它与编程语言之间的最大区别在于,编程语言的语法个规则更为严格一些。
(一)、简单举例
在Flash中可以添加脚本的的地方有3个,关键帧、按钮和影片剪辑
关键帧脚本演示:在第一帧添加关键帧,在15帧添加关键帧,并画圆。回到第一帧,添加脚本
gotoAndStop(15);
测试效果。常用的帧脚本如下:
stop(); //停止时间轴的指针在程序触发时候的那个帧
gotoAndPlay(); //让指针跳转到某个帧,然后继续播放
gotoAndStop(); //让指针跳转到某个帧,停止在那个帧
nextFrame(); //往下走一帧
prevFrame(); //往前走一帧
按钮上添加脚本是最常见的一种情形,最常用的形式有两种:
on(事件){
相应的脚本;
}
这种形式的编程添加在按钮本身上,除此之外,还有另外一种形式,可以添加在按钮的上一级的对象中,比如,如果按钮是放在舞台上,则可以将下边的代码放在舞台上:
按钮对象.事件=function()
{
相应脚本;
};
上边两种法对于按钮来说都可以实现相同的效果,但是第二种方法可以对代码集中管理,便于维护。
按钮实例:
首先制作影片剪辑,拖入场景中,命名为”mc”。制作按钮,然后在场景中添加5个实例。分别选择5个按钮,添加如下的脚本:
on(release){
_play();
}
on (release) {
_stop()
}
on (release) {
_prevFrame(); //prevFrame表示回到动画的上一桢
}
on(release){
_Frame();
}
on (release) {
_AndStop(1); //跳到mc影片的第一桢,并停止播放!
}
(二)、脚本语言语法
一、基本通则
Flash有自己的语法规则和标点符号,以下介绍他的一些通用规则。
1、 小点语法
和其他面向对象的语言一样,小点被用于指示和对象或者影片剪辑相关的属性和方法,也可以用来识别电影剪辑、变量、或者对象的目标路径。
例如,若MC为一影片剪辑,则它在舞台上的横轴属性和播放控制可表示为:
MC._x;
MC.play();
在脚本语言中_root,_parent分别表示引用时间轴和引用当前电影剪辑的上一级电影剪辑。则用_root可以创建绝对路径,如
_root.MC._x;
又如,如果影片剪辑dog的上一级剪辑为animal,则在dog中可用如下的语句是animal停止:
_parent.stop();
以上例子可以通过创建实例来验证。
2、 大括号
和C语言相同,使用大括号({})可以形成代码块。
如:
on(press){
this._x=this._x+100;
this._y=this._y+100;
………
}
3、 分号
每一句要一分号(;)结尾。但是在AS中并不像C语言那么严格,如果不写也可以通过,如下边的语句:
on(press){
this._x=this._x+100
this._y=this._y+100
………
}
但是在写程序时最好加上。
4、 大小写字母
在AS中,只有关键字区分大小写,其他的都无所谓。一下句子是等价的:
cat._x=100;
CAT._x=100;
但是为了防止出错,在写程序时最好的方法还是区分大小写。
5、 批注
和C语言相同,AS的批注有两种//和/*…….*/。
6、 关键字
AS所有的关键字如下:
Break    else    instanceof  typeof  Case  for    new    var  Continue  function  return  void  Default  if  switch  while  Delete  in  this  with
二、数据类型
1、 字符串型
在AS中,可以在单引号和双引号中输入字符串,并区分大小写。如:
xuexiao=”东软”;
trace(xuexiao);
xuexiao=’东软’;
trace(xuexiao);
在上边的程序中用trace()函数来测试结果,这是一个调试程序和输出结果的很有用的工具。由于Flash使用unicode-uft16(一种编码规范),在AS中命名变量时,可以使用汉字:
学校=’东软’;
trace(学校);
另外,对于字符串可以做加运算,连接两个字符串,如:
班级=’东软’;
系别=’计算机系’;
trace(班级+系别);
2、 数值型
AS中所有的数值型都是双精度型,而且可以做所有的算术运算,还可以直接调用内置的Math对象。如:
Math.sqrt(100);
可以用来求100的平方根。
当数值型数据与字符串数据在一起运算时,系统会自动的根据需要转换数据的类型,如:
a=’falsh’;
b=8;
trace(a+b);
这时,b被转换成字符串型然后连接起来。又如:
a=’100’;
b=5;
trace(a+b);
由于a的内容为一数值,AS在作上述运算时,就很容易出错,不知道将a转换成100,还是将b转换成’5’,但是,如下的程序,不会出现歧义:
a=’100’;
b=5;
trace(a-b);
3、 布尔型
只有两个值:true和false。
4、 对象型
同于其他的面向对象的编程语言,对象是属性的集合,每个对象都有自己的名称和值。比如,一本书,有自己的名字,厚度,大小,等等。客观世界的任何事物都是这样一些属性的集合体,当我们把这些属性写出来组合在一起用于区别其他的物体时,我们就创建了一个对象。除了内置的对象,AS允许用
户创建自己的对象,来组织电影中的信息。
5、 电影剪辑
电影剪辑是Flash中可以播放动画的符号。它是唯一引用图形元素的数据类型。
6、 Null型,实际上是一个值,这个值使变量没有值,或者说变量还没有赋予值。
7、 Undefined型:是一个值,表示一个变量还没有指定数据类型。
另外,可以用typeof()函数测试变量的类型,如:
a=’123’;
trace(typeof(a));
三、变量
1、 命名原则
可以用字母、数字、下划线,以及$,并且只能以字母或者$开头,在命名时不能使用Flash的关键字,另外在命名时不区分大小写。
2、 命名方法
(1) 直接引用变量,不必事先声明,如:
x=3;
y=’hello’;
AS根据输入的值来确定变量的类型。
(2) 用var来命名,如:
var x,y=’hello’;
x=3;
(3) 用set(variable,value)来命名,如:
set(x,100);
3、 变量的作用域
所谓作用域,就是变量被认可和可以被引用的区域。AS中有3类变量范围:
本地变量:在自身代码块中有效的变量(在大括号中)。
时间轴变量:可以在使用目标路径指定的任何时间轴内有效。
全局变量:即使没有使用目标路径指定,也可以在任何时间轴内有效。
在AS中,var声明的变量为本地变量,set和=声明的变量为时间轴变量。
四、运算符
常用的AS的运算符基本上同于C语言,如
算术运算符:
+ 、- 、* 、/ 、 ++、--、%等
比较运算符:
>、<、>=、<=
逻辑运算符:
&&  和    ||  或  !非
相等运算符:
==  相等  ===  全等  !== 不相等  !=== 不全等
相等和全等的区别为:全等不执行数据类型的转换,如果数据类型不同,则返回false。如下列结果是不同的:
a=12;
b='12';
trace(a==b);
trace(a===b);
赋值运算符:
=、+=、-=、*=、%=、/=
以上运算符意义与C语言是相同的。
五、程序流程的控制
AS的程序流程的控制几乎完全同于C语言,包括以下的几种:
条件分支:
if( 条件检查)
{
执行语句;
}
else
{
执行语句;
}
switch(变量)
{
case 条件值1:
执行语句;
break;
case 条件值2:
执行语句;
break;
case 条件值3:
执行语句;
break;
………….
default:
}
循环:
for(起始语句;条件语句;累进语句)
{
执行语句;
}
while(条件语句)
{
执行语句;
}
do
{
执行语句;
}while(条件语句);
六、函数
function 名称(变量1,变量2,…..)
{
函数体;
}
例如:
function circle(r)
{
return Math.PI*r*r;
}
area=circle(10);
在函数体中,如果要返回值,则必须使用return。在这个程序中,使用了AS的内置数学对象Math。
七、对象
在Flash中,包含很多对象,比如数组对象、布尔对象、时间对象、彩对象、时间对象、键盘按键对象、数学函数对象、电影剪辑对象、声音对象等,同时允许用户自己建立对象,其语法为:
对象名称=new Object();
用户自己建立对象举例:
首先,建立影片剪辑,并把引用实例命名为ball,建立一个按钮,在按钮上加入如下代码:
on(release){
x=new Object();
x.height=random(300);
x.width=random(300);
ball._x=x.height;
ball._y=x.width;
}
系统对象应用举例:
声音对象:
语法:对象名称=new Sound();它包括的事件有:
对象名称.attachSound(‘声音名称’)
对象名称.getVolume()  获取对象声音大小
对象名称.setVolume()  设置声音对象的大小,最大为100,默认为100,最小为0。
对象名称.start([开始位置,播放次数]),参数为可选项,开始位置以秒为单位。以上列出的是一些重要事件,其他的事件可以参考其他书籍。
举例:
从外部将音乐导入到库,比如笔者将“风铃”倒入到库中,然后,打开库,到文件,点右键,选链接---〉为动作脚本导出,然后在按钮上加入如下代码:
on(release){
music=new Sound();
music.attachSound("风铃");
music.start();
}
时间对象举例:
语法:对象名称=new Date() 
常用事件包括:
对象名称. getFullYear()  取得年份
对象名称.getMonth()    取得月份,比实际月份少1
对象名称.getDate()      取得天数
对象名称.getHours()      取得小时数
对象名称.getMinutes()    取得分钟数
对象名称.getSeconds()    取得妙数
举例:输出系统时间
建立静态文本框,输入“现在是北京时间”,建立动态文本框,变量命名为time,然后加入如下的代码:       
_EnterFrame=function(){
mytime = new Date();
t_y = FullYear();
t_m = Month()+1;
t_d = Date();
t_h = Hours();
t_mi = Minutes();
t_s = Seconds();
time=t_y+"年"+t_m+"月"+t_d+"日"+t_h+"时"+t
_mi+"分"+t_s+"秒";
}
鉴于时间关系,其他对象的应用,请参考其他书籍,或与笔者探讨。

本文发布于:2024-09-20 17:49:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/89473.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   变量   按钮   剪辑
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议