ActionScript 应用1
- 格式:doc
- 大小:579.50 KB
- 文档页数:38
b>ActionScript的新特点
Flash 5的ActionScript为创建包含复杂游戏、表单、调查表和实时交互性的网站提供了许多新的特性。现在就让我们来看看Flash 5的ActionScript有哪些新的特点。
1.ActionScript与JavaScript之间的差异
ActionScript与JavaScript核心编程语言很相似,同样具有函数、变量、语句、操作符、条件和循环等基本的编程概念。不了解JavaScript也可以学习和使用ActionScript。但是,如果了解JavaScript,你就会对ActionScript感到熟悉。ActionScript与JavaScript之间主要有以下几点不同:
ActionScript不支持浏览器特有的对象,如文档、窗口和锚点。
ActionScript不完全支持所有JavaScript的预定义对象。
ActionScript支持JavaScript中不允许使用的语法结构(如tellTarget和ifFrameLoaded动作和slash语法)。
ActionScript不支持某些JavaScript语法结构( switch、continue、try、catch、throw和labels语句)。
ActionScript不支持JavaScript的函数结构体。
在ActionScript中,eval动作仅执行变量的引用。
在JavaScript中,未定义的toString的值是undefined ,而在Flash 5中,为了与Flash 4兼容,未定义的toString的值是“”。
在JavaScript,计算未定义数值型变量或表达式,得到的结果是NaN。而在Flash 5中,为了与Flash 4兼容,计算结果是0。
ActionScript不支持Unicode编码,它支持ISO-8859-1和Shift-JIS字符集。
2.文本编辑
你可以在专家模式的Actions面板中直接输入脚本。当然,你也可以象在Flash 4中一样,从弹出菜单或工具箱列表中选择元素。
3.点语法
在Flash 5中,可以使用点语法获取和设置一个对象的属性和方法,包括电影剪辑实例和变量(例如,myMovieClip.childMovieClip.myVariable)。你也可以用点语法取代Flash 4中使用的斜杠语法(myMovieClip/childMovieClip:myVariable)。Flash 5不再使用斜杠语法。不过,Flash播放 匀恢С中备苡锓ā?br>
4.数据类型
Flash 5的ActionScript支持以下数据类型:字符串、数值、逻辑、对象和电影剪辑。多种数据类型的支持使你能够在ActionScript中使用不同类型的信息。例如,你可以创建数组和关联数组。
5.本地变量
在ActionScript中可以声明在动作列表或函数调用结束时过期的本地变量。这样,你就可以管理内存和重用变量名。Flash 4的变量都是永久性的,即使是临时变量(如计数器)也保存在动画中,直至动画结束。
6.用户定义函数
用户可以根据需要,定义带参函数,让它返回一个值。这样,我们就可以在脚本中重用代码块。在Flash 4中,你可以通过Call动作重用代码,但不能传递参数,也不能返回值。
B>7.预定义对象
可以使用Flash 5的预定义对象来访问和管理某些类型的信息。下面列出一些预定义对象:
Math(数学)对象:它的重要作用是对内建数学常数和函数的全面补充,例如E(Euler常数)、cos(余弦)和atan(反正切)。
Date(日期)对象:使用Date对象可以获取运行Flash播放器的系统的日期和时间信息。
Sound(声音)对象:使用Sound对象可以在动画中添加声音,能够在播放动画时控制声音。例如,可以调整音量(setVolume)或平衡(setPan)。
Mouse(鼠标)对象:使用Mouse对象可以隐藏标准光标,让你能够使用自定义光标。
MovieClip(电影剪辑)对象:使用MovieClip对象,可以控制电影剪辑而无需使用打包动作(如tellTarget)。可以使用点语法(如myMovieClip.play())调用电影剪辑实例的方法(如play、loadMovie或
duplicateMovieClip)。
8.剪辑动作
可以使用onClipEvent动作直接给编辑区中的电影剪辑实例分配动作。onClipEvent动作有load、enterFrame、mouseMove和data等事件,利用它可以创建新的高级交互性。
9.新动作
Flash 5增加了一些新动作,可以使用这些新增的动作(如do..while和 for)创建复杂的循环。另一些新动作则以MovieClip对象的方法来补充,如getBounds、attachMovie、hitTest、
swapDepths和globalToLocal等。
10.调试器
使用调试器可以查看和修改在测试动画模式、Flash独立播放器或浏览器中播放的动画的变量和属性值。这样,你就可以很容易发现动作脚本中的问题。
11.XML支持
使用预定义的XML对象可以把ActionScript转换为XML文档,然后传递到服务器端应用中。也可以用XML对象把XML文档载入Flash动画中并加以解释。使用预定义的XML
Socket对象可以创建不间断的服务器连接,为实时应用传递XML数据。
12.提供上下文敏感帮助
Flash 5包含有Actions面板中可用的每个动作的上下文敏感帮助。在编写脚本的过程中,可以获得与正在使用的动作有关的信息。方法是:从Actions面板的工具箱列表中 褚恢侄鳎缓蟮セ髅姘迳媳叩腍elp按钮,与选定动作相关的主题即显示在浏览器中。
ActionScript术语
象任何脚本语言一样,ActionScript也根据其特定的语法规则,使用专门的术语。本讲按字母顺序列出一些重要的ActionScript术语,并作简要介绍。这些术语以及管理它们的语法将在后续章节中作详细讨论。
1.Actions
Actions(动作)是指令一个动画在播放时做某些事情的一些语句。例如,gotoAndStop把播放头送到指定的帧或标签。请读者注意,在本教程中,动作和语句这两个术语常常交换使用。
2.Arguments
Arguments(参数),称为参数,通过它可以把值传递给函数。例如,下面的函数(welcome)使用两个值,由参数firstName和hobby接收:
function welcome(firstName, hobby) {
welcomeText = "Hello, " + firstName + "I see you enjoy " + hobby;
}
3.Classes
Classes(类)是可以创建的数据类型,用以定义新的对象类型。要定义对象的类,需要创建一个构造函数。
4.Constants
Constants(常数)是不能改变的元素。例如,常数TAB总是具有相同的意思。常数在比较值时很有用。
5.Constructors
Constructors(结构体)是用来定义类的属性和方法的函数。例如,以下代码通过创建称为Circle的构造函数来创建一个新的圆类:
function Circle(x, y, radius){
this.x = x;
this.y = y;
this.radius = radius;
}
B>6.Datatypes
Datatypes(数据类型)是一组值和对这些值进行运算的操作符。字符串、数值、逻辑值(true和false)、对象和电影剪辑是ActionScript的数据类型。
7.Events
Events(事件)是动画正在播放时发生的动作。例如,当装载电影剪辑、播放头到达某帧、用户单击按钮或移动电影剪辑,或用户用键盘输入时,可以发生不同的事件。
8.Expressions
Expressions(表达式)是语句中能够产生一个值的任一部分。例如,2+2就是一个表达式。
9.Functions
Functions(函数)是可以被传送参数并能返回值的可重用代码块。例如,getProperty函数被传送属性名和电影剪辑实例名,然后返回这些属性的值。getVersion函数返回当前正在播放动画的Flash播放器的版本。
10.Handlers
Handlers(事件处理程序)是一种特殊的动作,它“处理”或管理事件(如mouseDown或load)。例如,on(onMouseEvent)和onClipEvent就是ActionScript的事件处理程序。
11.Identifiers
Identifiers(标识符)是用来标明变量、属性、对象、函数或方法的名字。第一个字符必须是字母、下划线(_)或美元号($)。每个后续字符必须是字母、数字、下划线(_)或美元号($)。例如,firstName是一个变量名。
12.Instances
Instances(实例)是属于某个类的对象。一个类的每个实例包含该类的所有属性和方法。所有电影剪辑都是MovieClip类的实例,均拥有该类的属性(如_alpha和_visible)和方法(如gotoAndPlay和getURL)。
13.Instancenames
Instancenames(实例名)是在脚本中指向电影剪辑实例的唯一名字。例如,在图符库中的一个主图符可以称为counter,在动画中该图符的两个实例可以取实例名scorePlayer1和scorePlayer2。下列代码通过实例名设置每个电影剪辑内部的score变量的值:
_root.scorePlayer1.score+=1
_root.scorePlayer2.score-=1
使用Actions面板