用AS来实现飘雪效果动画

  什么都不用管,只要将下面的这些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>_root.S_Y) {
   this._y = 0;
  }
 };
}
利用for循环来控制所有被复制出来的雪花,为加强随机效果,我们可以使用Math.random()

好了,就讲到这了,自己动手试试吧:)

时间: 2024-09-29 18:15:57

用AS来实现飘雪效果动画的相关文章

opengl-关于用OpenGL实现飘雪效果

问题描述 关于用OpenGL实现飘雪效果 OpenGL用贴图制作雪花,贴图是黑底白色圆形,启用了混合,但雪花是一个个白色方片. 要如何解决? 解决方案 利用OpenGL实现动画效果OpenGL ES 正交投影与透视投影效果对比的代码实现opengl实现错切效果 解决方案二: 以前看到雪花效果的例子,就是简单的js实现的页面,雪花是通过字符"*"表示的. OpenGL的雪花效果可以参考:http://blog.csdn.net/stalendp/article/details/40624

PPT中怎么制作打字效果动画(图文)

PPT中怎么制作打字效果动画(图文)   演示的动态图只有图像没有声音,其实这个动画是有声音的,各位同学可以去文章最后素材体验. 1.切换到"插入"选项卡,在"文本"组中找到"文本框",选择一种文本框类型,并在幻灯片中绘制这种文本框. 2.在文本框中输入文字,并且在"开始"选项卡中修改它们的字体.字号以及颜色等. 3.选中文本框,在"动画"选项卡的"高级动画"组中给他添加出现动画. 4.

PS制作显示器播放效果动画图片

教程教飞特的朋友们用PS制作显示器播放效果动画图片,教程制作难度中等偏上,主要还是介绍PS制作动画的具体流程,这里介绍的是帧动画,对PS8.0以上的版本都适用,好了,先来看看最终的效果图吧: 效果图:   具体的制作过程如下: 效果图:   分类: PS入门教程

UIScrollView视差效果动画

UIScrollView视差效果动画   效果   源码 https://github.com/YouXianMing/Animations // // ScrollImageViewController.m // Animations // // Created by YouXianMing on 15/11/24. // Copyright 2015年 YouXianMing. All rights reserved. // #import "ScrollImageViewControlle

flash9飘雪效果

flash9飘雪效果 1.在flash中制作一个影片剪辑雪花 2.使用如下类:package { import flash.display.*; import flash.events.*;public class Snow extends MovieClip {   var speedx=0;   var speedy=0;   public function Snow() {    speedx=.8 * Math.random() - 0.4;    speedy=5 * Math.ran

IOS 实现3D 浮动效果动画_IOS

涉及到的技术点 CATransform3DRotate 转换坐标系 整体视图的层级结构 tvOSCardView cardImageView cardParallaxView 转换坐标系的代码 CGFloat xFactor = MIN(1, MAX(-1, (touchPoint.x - (self.bounds.size.width / 2)) / (self.bounds.size.width / 2))); CGFloat yFactor = MIN(1, MAX(-1, (touchP

轻松爽快的制作物理效果动画-Physics Helper

轻松爽快的制作物理效果动画-Physics Helper Physics Helper 是Silverlight中的一套控件,他能直接帮助你套用Farseer Physics 这个物理引擎.在制作动画中能帮你节省大量的时间. Beginning 使用相当的简单,根本不需要编码操作,使用Blend工具即可完成. 视频教程  Demos Egg on a HillCar on a RampSimple GameRag DollCamera with Rag DollCamera with Truck

电视雪花效果动画

教程开始之前,首先请看如下所示动画效果: 如何才能产生这种类似电视雪花效果的动画呢?通过滤镜.插件?不用,FW4里面已经为我们准备好了这种效果,请看后面的详细步骤: [注意]在开始本节的学习前,请大家首先参阅一下先前的文章"模拟条形码的制作",因为我们后面的操作是对上一节操作的继续,相关的内容这里就不再赘述了. 第一步.首先我们先和"模拟条形码的制作"一文简单的接一下头,在"模拟-"一文中,通过调整矩形的颜色调节手柄,已经出现了如图01所示的条形

Flash技巧之如何掌握遮罩效果动画

技巧 问题1:遮罩层与被遮罩层是什么关系? 解决思路     了解遮罩层和被遮罩层的关系,对于我们掌握遮罩动画是非常关键的.遮罩动画在Flash技术里面起到了重要作用,一些非常优秀的效果就是通过遮罩动画来实现的.例如:著名的"水面涟漪"效果,就是通过遮罩完成的,非常逼真.下面我们就通过不同的制作方法了解遮罩的原理,在实践中领会遮罩的奥妙. 具体步骤      1.运行Flash MX 2004,文档属性默认.     2.单击[文件]|[导入]|[导入到舞台]命令,导入一幅位图图片,并