本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2005-12-26 · 原址 http://flash8.net/teach/3893.htm ← Flash 保存计划

如何利用as控制飘动的雪花?

作者:闪吧   类型:原创   来源:闪吧

  

如何利用as控制飘动的雪花?
解决思路
主要的构思就是通过对一个雪花影片剪辑的复制出许多雪花,当然这是有限度的。不然cpu会受不了的。然后通过设置复制出来的雪花的位置坐标,达到下雪的效果。
具体步骤
1、  运行Flash MX 2004,设置文档属性为500*400。在图层1绘制一个渐变填充的背景。如图3.3.84所示。


图3.3.84    绘制背景
2、  新建一个影片剪辑,命名为“雪花”。在编辑区内画一个简单的雪花形状。大小约为11*11像素。如图3.3.85所示。


图3.3.85  绘制雪花
3、  返回到场景1,把影片剪辑“雪花”拖放到场景中,在属性面板中命名影片的实例名为“snow”。
4、  选中影片剪辑,打开as面板,添加如下语句:
onClipEvent (enterFrame) {  
 this._x += Math.random()*(this._xscale)/10;
 this._y += Math.random()*(this._yscale)/10; 
 if (this._x>500) {
  this._x = 0;
 }  
 if (this._y>400) {
  this._y = 0;
 }  
}
5、 AS的解释为:
onClipEvent (enterFrame) {  //每播放一帧就执行一次下面的AS
 this._x += Math.random()*(this._xscale)/10;
 this._y += Math.random()*(this._yscale)/10;//让雪花在X、Y轴方向上运动,每次移动的距离为自身大小的1/10左右,为加强随机效果,我们用到Math.random()来更好的控制。
 if (this._x>500) {
  this._x = 0;
 }  //当雪花飘出主场景时,重新回到主场景的左方。
 if (this._y>400) {
  this._y = 0;
 }  //当雪花飘出主场景时,重新回到主场景的上方。
}

6、 新建一个图层,在第1帧添加as:
i = 1;
while (i<=200) {
 duplicateMovieClip("snow", "snow"+i,  i);
 setProperty("snow"+i, _x, random(500));
 setProperty("snow"+i, _y, random(400));
 setProperty("snow"+i, _xscale, Math.random()*60+40);
 setProperty("snow"+i, _yscale, eval("snow"+i)._xscale);
 setProperty("snow"+i, _alpha, eval("snow"+i)._xscale+random(30));
 i++;
}
复制200个雪花MC,并为其随机放到一个位置,而雪花的大小也是随机产生,而雪花的透明度由雪花的大小(X、Y轴的比例)来决定,大一点的雪花的透明就越高,小一点的雪花透明度就越底。这样的效果就是近的雪花看的清楚,而远的雪花有点模糊……更加逼真……
6,保存,测试。请参看源文件“雪花”。

   责任编辑:kissall    时间:2005年8月29日

正在加载评论...