日期:2013-6-24 浏览次数:20215次

  在internet无比火爆的今天,网络技术日新月异,而macromedia的flash无疑是其中的佼佼者,flash技术以无与伦比的速度被广大用户所接受,并越来越展现出其强大的生命力。

  它提供给设计者和开发者轻松创建新一代网络应用的编辑新经验。从可口可乐爱华电子,越来越多的用户选择flash制作高压缩性的,富含声音与动画的交互式网站。创意,互动,趣味,实用,一切结合得是如此完美....

    而要想学好flash,其形变动画,运动动画,蒙板动画等并不难,最大难点无疑是在macromedia flash5.0中嵌入的actionscript脚本功能,actionscript脚本语言是特有的一种非常强大的网络动画编程语言,其语法结构虽与javascript脚本语言相类似,但又有很多不同于javascript的独到之处。50多个action行为,数百个子符串,运算符与函数,而很多的书辑,教程过于隆统,抽象,让人很难一时间完全弄懂。

  本文的目的就是通过几个简单的flash游戏,让已对掌握flash基本操作的使用者对actionscrip脚本有较直接的了解,掌握常用的actionscript脚本语言,并通过多动手,多动脑,在实战中提高自己的flash水平。  

实例说明:

  本游戏有9个地洞,小狗随机的在这9个洞中出现,你的任务就是在小狗把头缩回洞内之前打中它,越快击中得分数越高,小狗每出现一次为一轮,20轮后游戏结束,并给出得分。 

  原理分析:

    用遮照完成小狗在黑洞里一进一出的效果,用startdrag来替换鼠标,利用ramdon取随机数使小狗随机出现,而把时间轴上每一帧给予不同的分值使得越快打到分越高,最后用input text来显示得分。我希望您能你了解这个游戏的原理,而不是简单的照做,举一反三是很重要的,只有真正了解了一个作品的原理,算法之后,您才能做出自己更好的作品。为了您能看得更清楚并使之适合于一些flash的初学者,
我将以层为单位逐层的来讲解并尽可能详细的介绍操作,由于这种讲解的顺序和我们在实际中完成一件作品的顺序是相同的,因此有必要提醒大家注意:

background层

    打开您的flash,本例使用的是macromedia flash5.0版本,单击file,在下拉菜单中,单击new新建一个文件。(这些操作都有快捷键,为使您更好理解,将写成file---new,下同)modify---movie,在出现的影片信息中将影片宽(width)改为400,高(height)改为300,并设定背景色为浅黄色。insert---symbol...新建一个图型(graphic)原件命名为hole,在hole中画一个黑色的椭圆,返回scene 1,window---library显示出原件列表,把hole拖放到scene 1的第一层,复制成9个,window---panels---align调出对齐面板把9个hole对齐排好,再用文字工具在
右下方输入“得分”,最后将这一层改名为 background。  

dog层

   insert---symbol...新建graphic命名为dogpic,手绘一个可爱的狗头,当然您要是喜欢小猪我也不介意。inster---symbol...新键一个movieclip,命名为dogmovie,从library拖放dogpic到dogmovie,局中。insert---keyframe在第5,10,25帧建立关键帧,单击第10帧,调整此帧上dogpic的位置向上50(可通过window---panel---info来调整,insert---keyframe在第20帧建立关键帧。右键单击第5到第10帧间任一帧,creat motiontween建立运动动画,同样在第20到25帧建立运动动画。inster---symbol...新建一个button命名为grid,insert---keyframe在hit帧上创键关键帧,画一个矩型。返回pigmovie,insert---layer新建一层layer2,insert---keyframe在第5帧建立关键帧,从library中拖放grid到lyer2,删除lyer2上21-25帧。insert---layer新建一层lyer3,insert---blank keyframe在第1,5,20帧建立空白关键帧,左键双击第一帧弹出action面板,
basic action---stop,单击第5帧,window---panel---frame弹出 frame面板,将lable设置为up,同样将20帧的frame lable设为down。我们在这里为frame设置lable值是为了方便我们用actionscript进行跳转,在flash中可以设置是按帧位置数或帧标签跳转,通常使用的是标签方式,可以减少发生错误的机率并使你的actionscript更具有可读性。我们回到scene 1,insert---layer新建一层改名为dog,从library中拖放dogmovie到这一层,复制9个,使每一个dogmovie都正好处在background层中每一个黑色椭圆长轴以下。

mask遮照层

  遮照的概念是:遮罩层可以遮盖任何同遮罩层相关联的图层(被遮层)里的内容。
在scene 1中insert layer并将此层改名为mask,以background层上的黑色椭圆长轴为基准,画一个矩形,并使此矩型比dogmovie稍大一点,复制九个排列好。右击此层在弹出菜单中选mask,这样,我们就做好了一个遮照。也就是说在dog层上的所有原件除非出现在本层9个矩形范围以内否则便都是不可见的了。由于现在dog层上并没有任何的原件在此范围内,所以虽然我们在dog层上放了9个原件但我们将只能看到
background层上9个黑色hole,但记得吗,我们做的dogmovie是上下移动的movieclip,而当其向上云动时就会显示在屏幕上,而向下运动就会从屏幕上消失。这样就达到了我们让小狗一进一出的目的。但是有个严重的问题,我们的9个dogmovie会同时运动,而不是象我们希望的那样一个一个的运动,别急,下面就该我们的主角actionscript出场了。

随机运动 <