FLASH 5 ActionScript全接触 |
|
FLASH的强大已经人尽皆知,在Macromedia最新推出的FLASH 5中更是特别加强了脚本编辑功能,即ActionScript。当你看到那些闪客眩目的作品,而自己却感到力不从心,那正是因为你对ActionScript缺乏了解。利用ActionScript和ASP或CGI,你还可以轻松制作出自己的FLASH聊天站、留言本和论坛。心动了吧,在下面的文章中,我们根据FLASH 5 ActionScript语法的分类一步步了解、掌握这些语句,并结合实例加深对ActionScript的理解,无论在什么编程语言中分析源码都是一个很好的捷径。现在让我们一起进入FLASH 5 ActionScript的世界! 一、动作篇 FLASH 5 ActionScript中的的动作与FLASH 4相比较可以说是功能大为加强。在FLASH 5按Ctrl+Alt+A打开ActionScript编辑窗口,那些ActionScript代码都是在上面进行编写的。 ![]() 在动作列表上面单击就可以打开动作列表,双击不同的动作就能把动作添加到你的脚本中。您如果想熟练掌握ActionScript,最好还要有其他的脚本语言基础(例如VB Script)。限于篇幅问题,在这里只能做简单的介绍,其中括号内的内容是动作的参数。 1.控制类动作,这些动作是在FLASH 最常用到的动作: 2.判断类动作 3 函数类动作 4 循环类动作 上面所讲的就是ActionScript常用的动作,这些就是ActionScript的基础部分,只有熟练掌握了解了这些,你才能让ActionScript为你更好的工作。在ActionScript编辑窗口你可以选择专家模式(Ctrl+E)和标准模式(Ctrl+N),标准模式中FLASH 会为你提示输入动作参数(适合于初学者),而专家模式更加适合于那些Coding Fans。FLASH 还提供了调试器和输出窗口,更加方便了你对程序的调试。 二、运算符篇 ActionScript 中为我们提供了大量的运算符,方便了我们程序的编写。其中包括算术运算符、逻辑运算符、字符串运算符、位运算符和混合运算符。 看完上面的介绍后,大家可以很清楚的看到,ActionScript中的运算符与其他的编程语言(C、BASIC等)极其类似,熟练掌握这些运算符对我们后面的制作是十分用帮助的。 三、函数篇 在任何一种编程语言中函数都是不可缺少的部分,在ActionScript也不例外,我们一起来看一下ActionScript所包含的函数。 Boolean:转换及传回布尔值;escape: 转换URL码符号成十六进制字符并以%区分显示;eval :将参数运算并回传值为变量;getProperty:取得对象参数;getTimer:取得影片开始播放的时间(以毫秒为单位);getVersion:取得系统FLASH播放器的版本号;int:将参数转化为整型;isFinite:取得数值参数的判断值(如参数为正则返回真,为负数或者无限数值则返回假);isNaN:若参数为数值则返回真值,并指定参数错误;.maxscroll:返回文本框最大的高度;newline:换行符;Number:将参数转换成数值型;parseFloat转换浮点数字符串;parseInt将二进制或其他进制转换成十进制;random:产生随机数;scroll:控制文本框第一行文字与文字文件内容位置;String:将参数转换成字符型;targetPath:返回指定影片的字符型路径;unescape将十六进制URL码用ASCII显示;updateAfterEvent:在鼠标或键盘动作后更新状态 chr:将ASCII转换为符号;length:返回字符串长度;ord:将字符转换成ASCII;substring(字符串,其实字符位置,长度)截取字符串。 mbchr、mblength、mbord、mbsubstring的用途和上面列出的函数类似,只不过是用于多字节中。 在上面函数的介绍中,并没有列出函数的参数,在实际的使用中ActionScript会自动提示你输入参数。需要注意的是在下面的字符串函数中以mb为开头的几个函数都是对多字节字符操作的(像中文),而不带mb开头的是对单字节字符操作的。random函数取得的随机数是在0和参数x之间的数值。getProperty函数是个十分重要的函数,一般都和setProperty配合使用,它的参数我们在属性篇还要专门介绍。 四、属性篇 ActionScript中的属性是指影片或者组件的特征或者性质,用setProperty(设置对象属性)和getProperty(取得对象属性)能很容易的控制组件或者影片的属性。我们先来看一下ActionScript中对象所具有的属性: 上面所列出的就是ActionScript中对象所具有的属性,下面给大家举个简单的例子让大家熟悉一下属性的用法。我们在一个新的场景中放置一个按钮和一个影片,我们想在单击按钮时将影片的透明度降低。首先把影片组件的名称设置为test (在instance选项卡中)在按钮组件上点右键选择动作,在动作编辑器中输入以下代码: on (release) { setProperty ("test", _alpha, getProperty("test", _alpha)-4);} 然后运行,看见效果了吗,是不是很不错呢?在上面的程序中先是用getProperty函数取得test的alpha值,然后把alpha加4再用setProperty 动作把这个值赋给test。 五、对象篇 在ActionScript中的对象不同于我们在面向对象编程中的对象,在ActionScript中把时间、颜色、鼠标、按键甚至XML等等都作为对象处理。在ActionScript中的对象包括时间、颜色、鼠标、按键、排列、逻辑、数学、影片、选择、声音、字符、XML、XML连接。限于篇幅,在这里不能全部向大家介绍(因为那些实在是太多了),只能粗略地讲一下,希望能起到抛砖引玉的作用。 对XML的支持是FLASH 5很大的卖点,正是随着Microsoft 的.NET战略的抛出,XML成为了业界讨论的热点。你使用FLASH 5可以很方便的与服务器传送数据,做出自己的大型的购物表单、查询系统等等程序。当然XML不属于本文讨论之列,大家如果对这些感兴趣请查阅有关资料。 六、实例篇 上面洋洋洒洒写了这么多,不知道大家是不是对ActionScript有了一个初步的印象。下面我和大家一起来分析几个实例,相信大家很快就会明白上面所讲的东西了。 这个源代码是FLASH 5自带的你可以在Help→Sample→eggplant中打开它。 ![]() 这是一个典型的鼠标拖拽的例子,运行后出现一只茄子和一些的身体器官,你可以自由的把那些器官拖到茄子身上做成茄子先生或者茄子小姐。做出的效果十分有趣,代码也十分简单,在里面只用到了三个语句。让我们来看看制作过程。 1.新建影片→设置好背景颜色→将需要的图片(茄子和那些器官)导入到影片中。 2.把那些图片分别转成按钮组件,将组件命名为b_a、b_b、b_c...,然后再新建另外的几个和b_1相对应的影片组件m_a、m_b、m_c.....并且分别把相应的按钮组件拖到影片的组件中。 3.在影片组件m_a中的按钮组件b_a上点右键选Actions,加入下面代码: on (press) { //当鼠标按下时 startDrag ("/a"); //拖动目标a } on (release) { //当鼠标释放时 stopDrag (); //停止拖动 } ![]() 其他的影片组件代码和这个类似。 4.把所做好的影片组件拖到主场景中,并分别把名称设置为a、b、c... 好了按一下Ctrl+Enter预览一下效果,是不是还不错! 这个例子你可以在FLASH 5中的Help→Sample→dice中找到他,当影片执行时你按下ROLL dice后上面的两个色子随机出现点数,很适合做FLASH 游戏。做这个影片的思路是先做一个色子的边框并且在边框层的上层建一个色子点数的层,在这个层里面分别建立六个关键影格,每一个影格上面都放置相应的色子的点数,当单击按钮时随机跳至步同的影格显示随机的点数。好!让我们一步步来看这个效果是怎么做的。 1.建立一个新的影片组件die(用来放置色子的边框和点数),在上面将色子的边框画好。 ![]() 2.在Layer 1上面新建一个Layer 2层用来放置色子的点数,在Layer 2上面分别新建六个关键影格,每个影格上都对应的放置不同点数的色子,在Layer 2的第一个影格上面的动作设置为stop。 3.把die拖到主场景中,命名为left,再次把die拖到主场景中命名为right。 4.放置ROLL dice按钮,在ROLL dice动作上添加以下代码: on (release) { //当鼠标释放时 frame = Number(random(6))+1; //随机产生一个1~6的数字并且赋值给frame tellTarget ("/left") { //告知目标left gotoAndStop (/:frame); //跳至变量frame并且停止 setProperty ("", _rotation, random(360));//设置left的rotation属性(旋转属性)为随机数} frame = Number(random(6))+1; //下面对right的操作与对left的操作类似 tellTarget ("/right") { gotoAndStop (/:frame); setProperty ("", _rotation, random(360));}} ![]() 好了,就这么简单!现在你是不是也会说ActionScript其实也不难。 这篇文章中的实例并不是太多,大家有时间也可以在网上多找些源程序分析(推荐一个网站,http://www.flash8.net,里面有大量的源文件供下载),另外FLASH 5中带的那几个源程序也是学习的好范例。希望您能从本文中得到启发,如果找到了好的方法,学习起来必定事半功倍。 附:文中的两个Flsh文件
|