前言:网络中这个教程已经有了,但是教程写得都不尽详细,尤其是AS3.0脚本语句,在本地电脑中导出的swf影片不能正常显示播放,因此就给Flash初学者和刚刚接触AS3.0的人们造成了很大的困惑,也因此我运用网络中的这段AS3.0代码写下了本教程,希望大家都能学会运用这个逼真的喷泉特效代码。
先看效果演示:
制作方法: 一、启动Flash软件,建立AS3.0文档,舞台大小默认,颜色为黑的(我用的是Flash CC,用Flash cs4、cs5、cs6制作方法是同样的) 二、下载一张适合制作喷泉效果的背景图片导入到库,并且重命名为“背景图片”;再下载一张带有喷泉设备的图片导入到库,并且在Flash中把图片中的喷泉设备抠图(抠图方法我就不再这里罗嗦了),转换为图形元件,命名为“喷泉设备”。 在这里我把我所用的图片素材提供给大家来练习使用: 背景图片
喷泉设备 (已经抠好的透明PNG图片,直接导入Flash软件中即可使用) 三、制作水滴元件:
1、新建名称为“水滴”影片剪辑元件,该编辑区内点选时间轴第一帧,选取椭圆工具,在舞台上画出一个2X6像素的无边、白色、椭圆,并把这个画好的小椭圆移动到舞台的大致左上方位置(位置是代码中数据决定的),见图1; (图1) 2、打开库面板,右键单击库中该影片剪辑元件-属性,打开属性面板,见图2; (图2) 3、点击“高级”按钮,打开属性链接面板,填写其“类”为:pall,然后点击“确定”按钮完成设置,所有设置见图3; (图3)
var count:int = 2000; var zl:Number = 0.8; var balls:Array; balls = new Array(); for (var i:int = 5; i < count; i++) { var ball:pall = new pall(); ball.x = 275; ball.y = 300; ball["vx"]= Math.random() * 4 - 1; ball["vy"] = Math.random() * -10 - 10; addChild(ball); balls.push(ball); addEventListener(Event.ENTER_FRAME, onEnterFrame); function onEnterFrame(event:Event):void { for (var i:Number = 5; i < balls.length; i++) { var ball:pall = pall(balls[i]); ball["vy"] += zl; ball.x +=ball["vx"]; ball.y +=ball["vy"]; if (ball.x - ball.width/2> stage.stageWidth || ball.x + ball.width/2 < 0 || ball.y - ball.width/2 > stage.stageHeight || ball.y + ball.width/2 < 0) { ball.x = 275; ball.y = 300; ball["vx"]= Math.random() * 8 - 4; ball["vy"] = Math.random() * -10 - 10; } } } } 四、组织场景: 1、主场景中共建立三个图层,图层1重命名为“背景”、图层2重命名为“喷泉设备”、图层3重命名为“AS”见图4; (图4) 2、点选背景图层第一帧,把库面板中背景图片拖上舞台,调整大小和舞台同样,做全居中,锁定该图层; 3、点选喷泉设备图层第一帧,把库面板中喷泉设备图形元件拖上舞台,调整好你所需要的大小和位置,锁定该图层; 4、点选AS图层第一帧,把库中AS影片剪辑拖上舞台,打开属性面板,调整该元件的透明度为50%,(如果背景图片亮度高,可设置为70、或80%,如果是夜景图片,可设置为30%),该图层先不要上锁,因为还要调整喷水的位置; 5、测试影片看水的位置后,框选舞台上小白点,用键盘上的方向键调整位置,直到把水的位置和喷泉设备的位置调整吻合为止; 五、代码中几个关键数据的解释与修改: 1、代码中第一行中的数字“2000;”,是喷泉喷出水珠的数量,数字越大,喷出的水珠就越多,可根据自己制作的场景来修改水珠的数量。 2、代码中倒数第六行(倒数四个大括号上边第二行)中的ball["vx"]= Math.random() * 8 - 4;,其中的数字“8 - 4”,前边的“8”是喷水范围的宽度,数字越大喷水的范围越宽,数字越小,喷水的范围越窄;后边的“4”是喷水的方向,数字越大喷水方向越向左,数字越小喷水方向越向右; 3、代码中倒数第五行(倒数四个大括号上边第一行)中的ball["vy"] = Math.random() * -10 - 10;,其中的数字“10 - 10”,都是调整喷水的高度的,数字越大水喷得越高,数字越小水喷得越低,调整时两个数字最好相同。 代码中其他数字就没有调整的必要了,根据自己制作的场景调整好这三组数据后作品就完工了,最后看效果吧。 |
|