ActionScript从入门到精通第1章揭开ActionScript的神秘面纱第2章FlashMX的动作面板第3章ActionScript编程初步第4章影片播放控制第5章控制影片剪辑第6章影片剪辑属性第7章影片剪辑方法第8章响应键盘第9章输入文本和字符串第10章动态文本第11章Math对象第12章Color对象第13章Date对象第14章Sound对象第15章实现与服务器的交互第16章XML运用第17章FlashUI组件第18章用ActionScript画图第1章揭开ActionScript的神秘面纱ActionScript是Flash内置的编程语言,用它为动画编程,可以实现各种动画特效、对影片的良好控制、强大的人机交互以及与网络服务器的交互功能。ActionScript是一门吸收了C++、Java以及JavaScript等编程语言部分特点的新的语言。ActionScrip使用英文单词和元件提供了一种为Flash影片设置指令的方法。它的存在确保了Flash影片较之普通的按照线性模式播放的动画具备强大得多的人机交互能力。可以为时间轴中的关键帧、按钮和影片剪辑添加ActionScript。选中这些关键帧、按钮和影片剪辑,打开其动作面板,你就可以看到它们都添加了哪些脚本。1.1Flash中的程序交给计算机执行的指令集称为程序。程序的另一个名称叫做脚本。从现在开始,我们将这些指令集统称为脚本。脚本都必须有它的运行环境,就ActionScript来说,它的运行环境就是Flash影片。ActionScript可以指挥Flash影片该做什么。在某些情况下,ActionScript还可以指挥其他的东西,如用户的操作系统、浏览器等。但是ActionScript最主要的用途还在于控制Flash影片内部的东西。短的脚本可以只有一行,长的脚本可以长达几千行。它们可以作用于Flash影片的一个部分,也可以贯穿影片始终。有人把使用了脚本的整个Flash影片看作一个程序,也有人把影片中单独出现的脚本看作一个程序。这两种看法都正确,因为一个单独的程序也可以被定义成若干小程序。你可能对某些编程语言已经相当熟悉或者有所了解。例如广大网页设计者所熟知的JavaScript,以及另一种相似的语言VBScript,它们能用来编辑动态网页。HTML(HypertextMarkupLanguage超文本置标语言)是另一种特殊的语言,浏览器将按照它所包括的指令正确地显示文本和图片。在学校里面,你可能接触过一些编程方面的课程,如BASIC、Pascal、C、Java等。除HTML以外,以上提到的所有的语言都包含很相似的程序结构:循环、条件、变量等等。只要你知道了ActionScript的特殊用法,你就可以将以前所学的编程知识利用起来。就算你以前从来没有接触过编程方面的知识,不用担心,我会将所有需要的知识都告诉你。1.2ActionScript是从哪里来的ActionScript是从哪里来的呢?事实上它的确是从好几种程序语言中深化而来的。下面我们PDFpdfFactoryPro先花一点时间了解一下计算机语言的起源和发展。当第一台数字计算机诞生的时候,唯一的编程语言是计算机的专用语言——二进制代码,即由数字1和0组成的编码。当由1和0组成的不同序列被输入到计算机中,计算机就会执行完全不同的操作。使用这种语言编写程序是相当费劲的,就算写一个简单的两数相加的程序,程序的长度也是相当惊人的。为了避免每次都为两数相加的操作书写长长的二进制程序,有人书写了一种专门用于两数相加的代码,你可以方便地使用相同的代码实现任意两数的相加操作。接着,一些类似的函数诞生了,用它们可以处理所有的基本任务,如加、减、乘、除、比较、循环等等。从此以后,你可以使用这些事先编写好的函数执行几乎所有的操作了。现代的计算机语言理解和使用起来较之二进制编码都已经容易了无数倍,其一,现代计算机语言与英语语法很相似,如“go”、“for”、“begin”、“if”以及+、-、=等,它们的含义和用法与现实中都相差不大。BASIC、Pascal等编程语言,几乎可以像英语句子一样阅读,所以学习和理解起来都非常容易。其他语言,如C、Fortran,它们的功能更强一些,经验丰富的程序员可以用它们完成更复杂的任务。更多的语言居于以上两种语言之间,如C++、Java和JavaScript,它们既有一定的可读性,也有较强的功能。ActionScript与这些语言有更多的相似之处。Flash遵从ECMA(EuropeanComputerManufacturersAssociation欧洲计算机工业协会)制定的标准,因此ActionScript与ECMAScript(ECMA开发的一种语言)极其相似。所以与其说ActionScript建立在JavaScript的基础上,不如说ActionScript和JavaScript都建立在共同的基础之上。Flash具备交互功能,它的早期版本已能够利用简单的脚本实现不太复杂的导航和按钮。同时,Flash还是一种矢量动画工具,它的发展是与对它的应用需求分不开的,比如说网页设计者需要一种工具来制作体积更小的图像,由于矢量图是由线条和填充色构成的,而不是像位图一样由像素构成,所以它能够大大缩减文件大小,正顺应了网页设计者的需求,使许多系统配置低的用户也能够访问和浏览他们的网页。虽然说Flash是一个图形动画工具,但也不是没有使用程序的需要,比如说设计者需要制作一个按钮,让别的用户能通过单击按钮浏览到别的页面。Flash早期版本中的脚本非常简单,直到Flash4,才具有了标准的程序结构,如条件结构、循环结构等。但是Flash脚本仍然需要使用下拉菜单和空白文本框添加,几乎还不能叫做一种编程语言。真正的ActionScript到了Flash5才出现,程序员可以直接键入程序并将程序添加给需要作用的元素。FlashMX更大地扩展了ActionScript,现在的ActionScript提供了多达300余种命令、函数、运算符和结构,这才真正成为一种成熟的程序语言。1.3初识ActionScript脚本是由英语单词、数学符号和函数构成的,下面是一个ActionScript的例子:on(press){gotoAndPlay(myframe);}你可以通过其中的关键单词推测这段程序的作用。单词press表示按,即用鼠标在某种对象上面单击,这里的对象就是按钮。第二行中的长单词可以分开读成“gotoandplay”,可以将其理解为命令Flash到达影片中的一个特定位置并从这一特定位置开始播放影片。从以上可以看出,ActionScript可以控制Flash影片的播放。在着手学习ActionScript之前,我们将对ActionScript在Flash影片中的功能作更多的了解。Flash影片可以包含若干场景,每个场景都有时间轴,每条时间轴从第1帧开始。如果不添PDFpdfFactoryPro,Flash影片会自动从场景1的第1帧开始播放,直到场景1的最后一帧,然后接着播放场景2,以此类推。ActionScript的主要目的就是用来改变这种自动而死板的线性播放行为,一段脚本可以使影片在一个特定的帧上停止,循环播放前面的部分,甚至于让用户控制要播放哪一帧。ActionScript能够使影片完全脱离被动的线性播放模式。这还不是ActionScript的所有功能,它还可以将Flash影片从简单的动画改变为具有交互能力的电脑程序。下面让我们见识一下ActionScript能实现的一些基本功能。=控制播放顺序你可以通过选择某个菜单将影片暂停在某个位置,然后由用户来决定下一步干什么,这就避免让影片径直朝前播放。=创建复杂动画直接使用Flash中的绘图工具和基本命令来创建足够复杂的动画是相当困难的,但是脚本可以帮助你创建复杂的动画。例如可以用ActionScript控制一个球在屏幕中无休止的跳动,并且可以使它的动作遵从物理学中的重力定律。如果你不用ActionScript来实现这样的动画,你将需要几千帧来模仿相似的动作,而用ActionScript,你将只需要一帧。=响应用户输入你可以通过影片向用户提出问题并接收答案,然后将答案信息用于影片中或将其传送到服务器。加入了相应ActionScript的Flash影片更适合做网页中的表单。=从服务器获取数据与向服务器传送数据相反,使用ActionScript也可以从服务器中获取数据,你可以获取即时的信息并将它提供给用户。=计算ActionScript也可以对数值进行计算,用它可以模拟出各种复杂的计算器。=调整图像ActionScript可以在影片播放时改变图像的大小、角度、旋转方向以及影片剪辑元件的颜色等。你还可以从屏幕中复制或删除对象。=测试环境你可以用ActionScript测试Flash影片的播放环境,如获取系统时间,获取FlashPlayer的版本信息等。=控制声音ActionScript可以方便地控制声音的播放,甚至控制声音的声道平衡和音量等。1.4ActionScript放在哪里初学ActionScript的Flash爱好者最想问的问题恐怕是“ActionScript应该放在哪里?”Flash是一种复杂的多媒体编辑环境,如果你曾经使用过Flash,或者看过FlashMX附带的教程,你就应该知道Flash中的一些基本术语或元素。在Flash的元素中有3个地方可以放置脚本。1.4.1时间轴Flash影片中的每个场景都有时间轴,时间轴上的每个关键帧都可以放置脚本。并且,你还可以在每一个关键帧的不同层上放置不同的脚本。在主时间轴中放置脚本之前,需要先选择一个关键帧。启动Flash时,时间轴中有一个空白关键帧当选中一个关键帧后,你就可以打开动作面板,查看里面的脚本或者开始编写你自己的脚本了。有几种方法可以打开动作面板。你可以选择“窗口”→“动作”命令,或者按快捷键F9。PDFpdfFactoryPro复杂的影片浏览器比较熟悉,你也可以在影片浏览器中查看整个Flash影片所用到的脚本。打开影片浏览器的快捷键是Alt+F3。如图1-2所示即为FlashMX的动作面板。该动作面板被命令为“动作-帧”,这是因为其中的脚本将作用在帧上。如果是新建的一个影片,动作面板将是空的。后面我们将在动作面板中添加各种各样的脚本。第2章我们将看到如何使用动作面板。时间轴中的脚本将在Flash影片播放到脚本所在的关键帧位置时自动执行。例如,如果你为某一关键帧添加了stop()命令,当影片播放到那一帧位置时就会自动停止。要让影片继续播放,只有在其他的脚本中添加相应的命令。在时间轴中添加脚本还有一个好处就是方便你在ActionScript中使用函数。函数是可以重复使用的脚本代码,要想使整个影片都可以调用脚本中的函数,就必须将函数放置在主时间轴中。1.4.2按钮Flash中的元素又称作元件(symbol)。元件主要有3种:图形(graphic)、影片剪辑(movieclip)和按钮(button)。图形元件不能承载脚本,它们只能是简单的静态或动态图像。影片剪辑与图形元件类似,但是它可以承载脚本。第3种元件就是按钮,按钮可以承载脚本。事实上,如果没有脚本,按钮几乎不会发挥什么作用。要为按钮添加脚本,首先要在舞台中选中按钮,然后选择“窗口”→“动作”命令或按快捷键F9打开动作面板。与帧动作面板相对应,选中按钮时动作面板的标题是“动作-按钮”。你可能会认为,为按钮添加的脚本应该是在单击按钮时执行。其实,也可以为其他鼠标动作添加相应的脚本,如鼠标进入和移出按钮区域。按钮也可以响应按键动作,这使得我们可以方便地为按钮设置快捷键。1.4.3影片剪辑影片剪辑不同于图形元件,可以为影片剪辑命名,为影片剪辑添加脚本。为影片剪辑添加脚本的方法与按钮类似。为影片剪辑添加的脚本可以用来控制影片剪辑自身或控