分享
 
 
 

ActionScript的基本语法规则

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

该教程详细介绍了使用ActionScript编写脚本时应遵循的基本语法规则,是AS初学者的必读教程……

使用ActionScript编写脚本时,如果使用正常模式的动作面板,通过菜单和列表选择选项,可以创建简单的动作。要想用ActionScript编写功能强大的脚本,你就必须深入了解和学习Flash MX的ActionScript脚本语言。

像其它脚本语言一样,ActionScript也有变量、函数、对象、操作符、保留关键字等语言元素,有它自己的语法规则。ActionScript允许用户创建自己的对象和函数。ActionScript的语法和风格与javascript非常相似,但不完全相同。ActionScript拥有自己的句法和标点符号使用规则,这些规则规定了一些字符和关键字的含义,以及它们的书写顺序。例如,在英语中用句号结束一个句子,而在ActionScript中则用分号结束一个语句。

下面列出的是ActionScript的一些基本语法规则,对于比较比较特别的规则,请参阅ActionScript词典。

1.点语法

在ActionScript中,点(.)被用来指明与某个对象或电影剪辑相关的属性和方法。它也用标识指向电影剪辑或变量的目标路径。点语法表达式由对象或电影剪辑名开始,接着是一个点,最后是要指定的属性、方法或变量。例如,表达式ballMC.x是指电影剪辑实例ballMC的_X属性,_X电影剪辑属性指出编辑区中电影剪辑的X轴位置。

例如,submit是在电影剪辑form中设置的一个变量,而form又是嵌套在电影剪辑shoppingCart中的电影剪辑。表达式shoppingCart.form.submit=true的作用是设置实例form的submit变量的值为true。

表达一个对象或电影剪辑的方法遵循相同的模式。例如,ballMC实例的play方法用于移动ballMC的时间轴播放头,就像下面的语句:

ballMC.play();

点语法使用两个特殊的别名:_root和_parent。别名_root是指主时间轴。可以使用_root别名创建一个绝对路径。例如,下面的语句调用主时间轴中电影剪辑functions的buildGameBoard函数:

_root.functions.buildGameBoard();

Flash MX允许使用别名_parent来引用嵌套当前电影剪辑的电影剪辑。也可以用_parent创建一个相对目标路径。例如,如果电影剪辑dog被嵌套在电影剪辑animal之中,那么,在实例dog上的下列语句告诉animal电影剪辑停止播放:

_parent.stop();

2.斜杠语法

Flash的以前版本是使用斜杠语法指出电影剪辑或变量的目标路径的。Flash MX播放器仍然支持这种语法,但不推荐使用。在斜杠语法中,斜杠被用来代替点,用以标明电影剪辑或变量的路径。要指出一个变量,可以在变量前加上冒号,如下面的语句所示:

myMovieClip/childMovieClip:my Variable

我们现在用点语法取代上述斜杠语法来表示上面的目标路径:

myMovieClip.childMovieClip.myVariable

斜杠语法在tellTarget动作中使用最为普遍,但这种动作在Flash MX中已不再推荐使用。

【说明】与其使用tellTarget动作还不如使用with动作与点语法兼容。

3.大括号

ActionScript语句用大括号({})分块,如下面的脚本所示:

on(release){

myDate = new Date();

currentMonth = myDate.getMonth();

}

4.分号

ActionScript语句用分号(;)结束,但如果你省略语句结尾的分号,Flash仍然可以成功地编译你的脚本。例如,下面的语句用分号结束:

colum = passedDate.getDay();

row = 0;

同样的语句也可以不写分号:

colum = passdDate.getDay()

row = 0

5.圆括号

定义一个函数时,要把参数放在圆括号中:

function myFunction (name, age, reader){

}

调用一个函数时,也要把要传递的参数放在圆括号中:

myFunction ("Steve",10,true);

圆括号可以用来改变ActionScript的运算优先级,或使自己编写的ActionScript语句更容易阅读。

也可以用圆括号来计算点语法点左边的表达式。例如,在下面的语句中,圆括号使表达式new color(this)得到计算,并创建了一个新的颜色对象:

onClipEvent(enterFrame){

(new Color(this)).setRGB(oxffffff);

}

在上例中,如果不使用圆括号,就需要在代码中增加一个语句来计算它:

onClipEvent(enterFrame){

myColor = new Color(this);

myColor.setRGB(0xffffff);

}

6.大小写字母

在ActionScript中,只有关键字区分大小写。对于其余的ActionScript,可以使用大写或小写字母。例如,下面的语句是等价的:

cat.hilite = true;

CAT.hilite = true;

但是,遵守一致的大小写约定是一个好的习惯。这样,在阅读ActionScript代码时更易于区分函数和变量的名字。如果在书写关键字时没有使用正确的大小写,你的脚本将会出现错误。例如下面的两个语句:

setProperty(ball,_xscale,scale);

setproperty(ball,_xscale,scale);

前一句是正确的,后一句中property中的p应是大写而没有大写,所以是错误的。在动作面板中启用彩色语法功能时,用正确的大小写书写的关键字用蓝色区别显示,因而很容易发现关键字的拼写错误。

7.注释

需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。

在动作面板中选择comment动作时,字符“//”被插入到脚本中。如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:

on(release){

//建立新的日期对象

myDate = new Date();

currentMonth=myDate.getMonth();

//把用数字表示的月份转换为用文字表示的月份

monthName = calcMoth(currentMonth);

year = myDate.getFullYear();

currentDate = myDate.getDat();

}

在脚本窗口中,注释内容用粉红色显示。它们的长度不限,也不影响导出文件的大小。

8. 关键字

ActionScript保留一些单词,专用于与本语言之中。因此,不能用这些保留字作为变量、函数或标签的名字。下表列出了ActionScript中所有的关键字:

break continue delete else

for function if in

new return this typeof

var void while with

【注意】这些关键字都是小写形式,不能写成大写形式。

9.常量

常量有其值永不改变的属性。常数用大写字母列于动作工具箱中。例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。要测试用户是否在按Enter键,可使用下面的语句:

if(keycode()= =key.ENTER){

alert = "你准备好了吗?"

controlMC.gotoAndStop(5);

}

ActionScript中的术语

ActionScript根据特定的语法规则使用特定的术语。以下按字母顺序介绍重要的ActionScript术语.

Actions(动作):是指导Flash电影在播放时执行某些操作的语句。例如,gotoAndStop动作就可以将播放头转换到指定的帧或帧标记。

Action(动作)也可以被称作statement(语句)。

Arguments(参数):是允许将值传递给函数的占位符。例如,以下语句中的函数welcome就使用了两个参数firstName和hobby来接收值:

function welcome(firstName,hobby) {

welcomeText = "Heelo," + firstName + "I see you enjoy" + hobby;

}

Classed(类):是各种数据类型。用户可以创建“类”并定义对象的新类型。要定义对象的类,用户需创建构造器函数。

Constants(常量):是不会改变的元素。常量对于值的比较非常有用。

Constructors(构造器):是用来定义“类”的属性和方法的函数。以下代码通过创建Circle构造器函数生成了一个新的Circle类。

function Circle(x, y, radius) {

this.x = x;

this.y = y;

this.radius = radius;

}

Data types(数据类型):是可以执行的一组值和操作。ActionScript的数据类型包括:字符串、数值、逻辑值、对象和影片剪辑。

Events(事件):是在电影播放过程中发生的动作。例如,当电影裁入时、当播放头到达某一帧时、当用户单击按钮或影片剪辑时、当用户按压键盘上的按钮时,都会产生不同的操作。

Expressions(表达式):是可以产生值的语句。例如2+2就是一个表达式。

Functions(函数):是可以重复使用和传递参数的代码段,可以返回一个值。例如,getProperty函数就可以使用影片剪辑的实例名称和属性名称,返回属性值。getVersion函数可以返回当前播放电影的Flash播放器的版本。

Handlers(句柄):是可以管理诸如mouseDown和load事件的特殊动作。例如,onMouseEvent和onClipEvent就是ActionScript的句柄。

Identifiers(标识符):是用来指示变量、属性、对象、函数或方法的名称。标识符的首字母必须是字符、下划线(_)或美元符号($)。后续字符可以是字符、数字、下划线或美元符号。例如,firstName就是一个变量名。

Instances(实例):是属于某些class(类)的对象。每个类的实例都包含该类的所有属性和方法。例如,所有影片剪辑实例都包含MovieClip类的属性(透明度属性、可见性属性)和方法(例如gotoAndPlay、getURL等)。

Instance names(实例名称):是一个唯一的名称。可以在脚本作为目标被指定。

Keywords(关键字):是具有特殊意义的保留用词。例如,var就是一个关键字,它可以用来定义本地变量。

Methods(方法):是指定给对象的函数。在函数被指定给对象之后,该函数就可以被称为是该对象的方法。

Objects(对象):是属性的集合。每个对象都有自己的名称和值。对象允许用户访问某些类型的信息。例如,ActionScript的预定义对象Date就提供了系统时钟方面的信息。

Operands(运算项):是由表达式中的运算符操控的值。

Operators(运算符):可以从一个或多个值中计算获得新值。例如,将两个数值相加就可以获得一个新值。

Parameters(参数):也被称之为Arguments(参数)。

Properties(属性):是定义对象的attributer(属性)。例如,所有影片剪辑对象都具有_visible(可见性)属性,通过该属性可以决定影片剪辑是否显示。

Target paths(目标路径):是Flash电影中影片剪辑名称、变量和对象的垂直分层结构地址。主时间轴的名称是_root。影片剪辑属性检查器中可以命名影片剪辑的实例。

用户可以通过目标路径使动作指向影片剪辑,也可以使用目标路径获取或设置变量的值。例如,以下示例语句就是影片剪辑stereoControl内部的变量volume的路径:

-root.stereoControl.volume

Variables(变量):是存储了任意数据类型值的标识符。变量可以创建、修改和更新。变量中存储的值可以被脚本检索使用。在以下的示例中,等号左边的是变量标识符,右边的则赋予变量的值:

x = 5;

name = "Lolo";

customer.address = "66 7th Street";

c = new Color(mcinstanceName);

编写ActionScript脚本

编写Flash动作脚本并不需要用户对ActionScript有完全的了解,用户的需求才是真正的目标。有了设计创意之后,用户要做的就是为此选择恰当的动作、属性、函数或方法。学习ActionScript的最佳方法是创建脚本。用户可以在动作面板的帮助下建立简单脚本。一旦熟悉了在电影中添加诸如play和stop这样的基础动作之后,用户就可以开始学习更多有关ActionScript的知识。要使用ActionScript的强大功能,最重要的是了解ActionScript语言的工作原理:ActionScript语言的基础概念、元素以及用来组织信息和创建交互电影的规则等。

1.脚本的规划和调试

在为整个电影编写脚本时,脚本的数量和变化可以可能都是巨大的。例如,用户可能需要考虑以下问题:决定使用哪些动作,如何建立更有效的脚本结构,以及在哪些地方放置脚本?所有这些问题都需要经过仔细规划和测试。特别是当电影变得越来越复杂时,这些问题更加显得突出。

在开始编写脚本之前,用户需明确自己要达到的目标。例如,这些目标可能是使用Flash创建整个站点。

? 询问站点访问者姓名,并且在整个站点中重复使用该信息。

? 站点具有一个可拖动的导航工具栏,可以帮助用户跳转到站点的任意分支。

? 当某一个按钮被单击时,新的内容以淡入方式出现在舞台中央。

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有