flash制作下雪效果的脚本怎么写?

flash制作下雪效果的脚本怎么写?,第1张

第一针
A = 100;//定义雪花个数
B = 2;//初始值
_rootcreateEmptyMovieClip("bg", 0);/创建空白影片剪辑创建一个黑的与场景大小一样的影片作为背景/
with (_rootbg) {
thisbeginFill(0x000000, 100);
thismoveTo(0, 0);
thislineTo(0, 0);
thislineTo(0, Stageheight);
thislineTo(Stagewidth, Stageheight);
thislineTo(Stagewidth, 0);
thislineTo(0, 0);
thisendFill();
}//用画线来画背景
_rootcreateEmptyMovieClip("xue", 1);/利用画线创建雪花,其实就是一个白色的园/
with (_rootxue) {
beginFill(0xffffff, 100);
moveTo(5, 0);
curveTo(0, 0, 0, 5);
curveTo(0, 10, 5, 10);
tcurveTo(10, 10, 15, 10);
curveTo(15, 0, 5, 0);
endFill();
}
_rootxue_visible = false;//隐藏影片剪辑
for (var i = B; i<A; i++) {//复制影片剪辑,随机颁布与场景中,并设置其属性
duplicateMovieClip("_rootxue", "xue"+i, i);
_root["xue"+i]_x = random(Stagewidth);
_root["xue"+i]_y = random(Stageheight);
_root["xue"+i]_xscale = _root["xue"+i]_yscale=50+iMathabs(Mathsin(Mathrandom(50)+i))/4;
_root["xue"+i]_alpha = random(70)+30;
_root["su"+i] = Mathcos(Mathrandom()A/2-A);
}//这个是主场景中第一桢的脚本
第二针
function go(k) {自定义函数,让雪花动起来
_root["xue"+k]_x += _root["su"+k]2;//定义雪花的X轴运动方式
_root["xue"+k]_y += 3;//定义雪花Y轴的运动方式
if (_root["xue"+k]_x>Stagewidth) {/定义界限,当雪花超出场景时返回初始状态,这样可以使雪花不断出现/
_root["xue"+k]_x = 0;
} else if (_root["xue"+k]_x<0) {
_root["xue"+k]_x = Stagewidth;
}
if (this["xue"+k]_y>Stageheight) {
this["xue"+k]_y = 0;
} else if (_root["xue"+k]_y<0) {
_root["xue"+k]_x = Stageheight;
}
}
for (var k =B; k<A; k++) {
go(k);
}//复重复执行自定义函数,让雪花漂起来
第三针
gotoAndPlay(2);

作业还是要自己交的,我给你个思路吧,你先做一个雪花的图形,随便画一个不规则的小白点就行了,然后制作一个影片剪辑,把那个雪花图形拖到这个影片舞台中,利用补间动画制作雪花飘落,然后直接把这个影片剪辑拖到舞台上。按着CTRL复制点就好了,我把我这的一个示例发给你了。

下面是一个某教程的实例
一、制作影片剪辑元件
1设置宽600高450的工作舞台区;
2将“图层1”的名称改“背景”,在背景图层的第1帧导入一幅背景图像并调整大小和位置;
3、插入-插入元件,选择影片剪辑,取名叫雪花飘名称,回车,进入编辑状态并制作“雪花飘落”引导动画,在第一层用铅笔工具画一个从上到下的曲线,模拟雪花下降的轨迹,在第二层放一个雪花素材,或自己绘一个,并转成元件。在第一桢,选中这个雪花元件对准上一层的曲线上端,在第N桢插入关健桢,把雪花元件拖到下面曲线的另一端。然后选中第一层,右健,点引导层。再选中第二层,右健,属性,把补引导层勾上。
4、回到主场景。
二、制作动画:
1、在“背景”图层上面添加一个“雪花飘飘”的图层,选中该图层的第1帧,把库面板中的“雪花飘落”影片剪辑元件拖曳到舞台左上角,并把实例命名为xhp;
2、在“雪花飘飘”上添加一个“AS"的图层,选中该图层的第1帧,按F9调出“动作”面板,动作面板中输入如下程序;
xhshu=0;
//定义雪花的数量初始值为0
xhp_visible=false;
//场景中xh实例为不可见
3、选中“Action"图层的第2帧,按F7插入一个关健桢,然后在“动作”面板中输入:
xhpduplicateMovieClip("xhp"
xhshu,xhshu);//复制一个名称为“xhp"加序号的实例
newxh=_root["xhp"
xhshu];//将复制好的新实例xhp的名称用newxh替代
newxh_x=Mathrandom()600;//赋给newsxh实例X坐标一个0~600之间的随机数
newxh_y=Mathrandom()10;//赋给newxh实例Y坐标一个0~10之间的随机数
newxh_rotation=Mathrandom()100-50;//赋给newxh角度一个体-50~50度间的一个随机数
newxh_xscale=Mathrandom()40
60;//赋给newxh水平宽度比例60~100之间的随机数
newxh_yscale=Mathrandom()40
60;//赋给newxh垂直宽度比例60~100之间的随机数
newxh_alpha=Mathrandom()50
50;//赋给newxh透明度一个50~100之间的随机数
xhshu
;//变量xhshu的值自动加1,即雪花数量加上1
4、选中脚本程序的第3帧,按F7,在“动作”面板中输入
gotoAndPlay(2);//跳转到第2帧。
5、关闭动作面板,在第二层的第三桢按F5顺延第二层的桢,第三层也同样 *** 作。
按Ctrl
Enter
测试,OK
如有不明,请留下邮箱信息,我发一个源文件给你参考。

做个示例(不是mc),里面是下雪的动画,然后拖到时间线上,延长这个单独层的时间线帧数到需要停止的那一帧。
说明,示例,可以做成动画形式的,拖到多长,就播放到多长,这点和mc(影片夹子不同),不过也可以试试mc,印象中不可以会一直播放下去。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10322332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存