|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
什么都不用管,只要将下面的这些AS代码COPY到FLASH MX新建文档的第1帧中,Ctrl+回车测试一下,就会看到雪花效果了。 //代码如下: //========= S_X = Stage.width; S_Y = Stage.height; S_snow = 120; TTurl="www.webjx.com" _root.createEmptyMovieClip("webjx_BG", 1); with (_root.webjx_BG) { beginFill(0x000000, 100); lineStyle(0, 0x000000, 0); moveTo(0, 0); lineTo(S_X, 0); lineTo(S_X, S_Y); lineTo(0, S_Y); lineTo(0, 0); endFill(); } _root.createEmptyMovieClip("webjx_snow", 2); with (_root.webjx_snow) { lineStyle(0, 0x000000, 0); beginFill(0xffffff); moveTo(20, 20); curveTo(24, 20, 24, 16); curveTo(24, 12, 20, 12); curveTo(16, 12, 16, 16); curveTo(16, 20, 20, 20); endFill(); } _root.webjx_snow._visible=0 webjx = 3; while (webjx<=S_snow&&TTurl=="www.webjx.com"&&substring(_root.TTurl, 5, 5) =="webjx") { duplicateMovieClip("webjx_snow", "snow"+webjx, webjx); with (eval("snow"+webjx)) { _x = random(S_X); _y = random(S_Y); _xscale = Math.random()*60+40; _yscale = eval("snow"+webjx)._xscale; _alpha = eval("snow"+webjx)._xscale+random(15); } webjx++; } for (var i = 3; i<=S_snow; i++) { var truewebjx = ["snow"+i]; _root[truewebjx].onEnterFrame = function() { this._x += Math.random()*(this._xscale)/10; this._y += Math.random()*(this._yscale)/10; if (this._x>_root.S_X) { this._x = 0; } if (this._y>_root.S_Y) { this._y = 0; } }; } //========================= //代码结束 怎么样,看到效果了吧:) 现在我来说一下我在制作时的编程思路: 我们要做飘雪效果,那一定要有白色的雪花,所以用createEmptyMovieClip()来创建一个白色小圆的MC是势在必行的…… 但是,不要忘了,Flash MX中,背景的默认色就是白色,所以假如我们直接做出雪花飘落的效果也看不出来(因为雪花与背景都是白色)因此第一步是――用createEmptyMovieClip()创建一黑色矩形,大小与主场景同大。 S_X = Stage.width;//主场景的宽 S_Y = Stage.height;//主场景的高 用来获得主场景的宽度与高度。 //下面是制作一个黑色的背景 _root.createEmptyMovieClip("webjx_BG", 1); with (_root.webjx_BG) { beginFill(0x000000, 100); lineStyle(0, 0x000000, 0); moveTo(0, 0); lineTo(S_X, 0); lineTo(S_X, S_Y); lineTo(0, S_Y); lineTo(0, 0); endFill(); } 用createEmptyMovieClip("webjx_BG", 1)来创建一个新的MC(电影剪辑)。再用变量S_X与S_Y表示主场景的宽和高。画好矩形线框后,再把与主场景同大的MC填充为黑色。 第一步已经完成了。可以先Ctrl+回车测试一下,看是不是在主场景中有一个黑色的矩形? 好了,再来做雪花: //制作一个雪花,填充为白色的小圆。 _root.createEmptyMovieClip("webjx_snow", 2); with (_root.webjx_snow) { lineStyle(0, 0x000000, 0); beginFill(0xffffff); moveTo(20, 20); curveTo(24, 20, 24, 16); curveTo(24, 12, 20, 12); curveTo(16, 12, 16, 16); curveTo(16, 20, 20, 20); endFill(); } Ctrl+回车测试一下,看是不是在场景的左上角出现一个小白点? 好了,我们继承向下做: 既然是雪花飞舞,就不可能只有一个雪花在飞 所以我们要用duplicateMovieClip()来复制出N多个雪花,为了日后修改时或别人看时都方便,我们把雪花的个数用变量来代替: S_snow = 120;//雪花的个数 _root.webjx_snow._visible=0//将原雪花隐藏 webjx = 3; while (webjx<=S_snow&&TTurl=="www.webjx.cn"&&substring(_root.TTurl, 5, 5) =="webjx") { duplicateMovieClip("webjx_snow", "snow"+webjx, webjx); with (eval("snow"+webjx)) { _x = random(S_X); _y = random(S_Y); _xscale = Math.random()*60+40; _yscale = eval("snow"+webjx)._xscale; _alpha = eval("snow"+webjx)._xscale+random(15); } webjx++; } OK,现在再测试一下,看看是不是满天的雪花:) 虽然是满天的雪花,可是不会动怎么办? 没关系,我们还是可以用AS来实现D~~~ LOOK: //控制雪花的飘动,假如飘出主场景,则重新回到主场景中来 for (var i = 3; i<=S_snow; i++) { var truewebjx = ["snow"+i]; _root[truewebjx].onEnterFrame = function() { this._x += Math.random()*(this._xscale)/10; this._y += Math.random()*(this._yscale)/10; if (this._x>_root.S_X) { this._x = 0; } if (this._y>_ro ot.S_Y) { this._y = 0; } }; } 利用for循环来控制所有被复制出来的雪花,为加强随机效果,我们可以使用Math.random() 好了,就讲到这了,自己动手试试吧:) 返回类别: Flash教程 上一教程: Flash制作一款简朴的滑动菜单 下一教程: 精品热门FLASH游戏作品 您可以阅读与"用AS来实现飘雪效果动画"相关的教程: · Flash与Photoshop结合实现镜头推拉效果动画 · Flash轻松实现QQ翻滚效果动画 · Flash+Photoshop实现图片模糊效果动画 · 三种鼠标跟随效果动画的实现 · Flash制作环绕的立体图片效果动画 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |