flash中的duplicateMovieClip是怎么用的啊???

一定要和on连用吗?假如不行的话,该怎么用啊?能每个举个例子吗?雪花飞舞是用它吗??能飞舞一下吗??越简单能看懂越好!多谢!!太复杂了,有没有简单点的啊另外,我的FLAS... 一定要和on连用吗?假如不行的话,该怎么用啊?能每个举个例子吗?雪花飞舞是用它吗??能飞舞一下吗??越简单能看懂越好!多谢!!
太复杂了,有没有简单点的啊
另外,我的FLASH里面的属性栏里怎么没有自动旋转啊,以前好象有的,现在没了,我的版本是flash mx professional 2004
展开
 我来答
410317067
2007-09-14 · TA获得超过827个赞
知道答主
回答量:67
采纳率:0%
帮助的人:76.6万
展开全部
  var sceneWidth =550;//定义场景的宽
  var sceneHeight=400;//定义场景的高
  var sideDisWidth = Stage.width/2-sceneWidth/2;//定义变量,雪花的横向位移范围
  var sideDisHeight = Stage.height/2-sceneHeight/2;//定义变量,雪花的纵向位移范围
  var snowNum = 150;//定义雪花的数量
  var snowSpace:MovieClip = _root.createEmptyMovieClip("room", 1);//声明一个空影片剪辑snowSpace.

  function addMasker() {//声明addMasker函数,执行两项工作.1是画外边框,2是画雪花景
  _root.createEmptyMovieClip("masker", -2);//创建空影片剪辑masker,层深-2.任务是为舞台画外边框,并填充颜色
  with (masker) {//设置masker的属性。
  lineStyle(1, 0xcccccc, 100);//设置线条颜色
  beginFill(0x000000, 0);//绘制矩形闭合路径,并填充灰色,透明度为0.
  moveTo(sideDisWidth, sideDisHeight);//绘制起点
  lineTo(sideDisWidth+sceneWidth, sideDisHeight);//绘制的右上角点的位置
  lineTo(sideDisWidth+sceneWidth, sideDisHeight+sceneHeight);//绘制的右下角点的位置
  lineTo(sideDisWidth, sideDisHeight+sceneHeight);//绘制的左下角点的位置
  lineTo(sideDisWidth, sideDisHeight);//绘制的左上角点的位置
  endFill();//结束绘制
  }
  createSnow();
  }

  function createSnow() {//定义一个匿名函数,完成声明一个雪花MC,雪花半径,循环画雪花
  var n = 0;//局部变量n=0
  while (n<snowNum) {//在0到150数量范围循环画雪花
  var snow:MovieClip = snowSpace.createEmptyMovieClip("s"+n, n);//声明snowSpace剪辑由"s"+n个snow组成
  var radius:Number = Math.random()*3;//定义雪花半径大小
  drawSnow(snow, radius);//把snow, radius把参数传递给drawSnow函数
  n++;
  }
  }

  function drawSnow(snow:MovieClip, radius:Number) {//定义一个匿名函数,画一个雪花
  var p = radius*.9;//局部变量P,用来定义雪花大小的坐标值
  with (snow) {//设置snow这个对象的动作.画雪花圆形白色填充
  colors = [0xCCCCCC, 0xFFFFFF];//设置雪花的颜色
  alphas = [100, 100];//设置透明度
  ratios = [0, 255];//采样处的宽度的百分比
  matrix = {matrixType:"box", x:-Math.random()*2*radius, y:-Math.random()*2*radius, w:2*radius, h:2*radius, r:(90/180)*Math.PI};//一个变形矩阵
  beginGradientFill("radial", colors, alphas, ratios, matrix);// 设置填充色.
  curveTo(p, -p, radius, 0);//定义点坐标,画雪花
  curveTo(p, p, 0, radius);
  curveTo(-p, p, -radius, 0);
  curveTo(-p, -p, 0, -radius);
  endFill();//结束
  }
  snowProperty(snow, sceneWidth, sceneHeight);//把参数传递给snowProperty
  }

  function snowProperty(snow, w, h) {//定义一个匿名函数,一个雪花如何下降
  snow._x = sideDisWidth+Math.random()*w;//根据可编辑的宽及0和1中的任意一个数乘雪花宽计算雪花的X轴起始位置
  snow._y = sideDisHeight+Math.random()*h;//根据可编辑的高及0和1中的任意一个数乘雪花高计算雪花的Y轴起始位置
  snow._rotation = Math.random()*120+30;//设置旋转角度.有立体感.雪花的旋转程度为0和1中的任意一个数乘120+30
  snow.stepX = Math.cos((snow._rotation*Math.PI)/180);//雪花横向位移.用计算余弦(旋转角度*常数3.14)/180)
  snow.stepY = Math.random()*2+1;//雪花纵向位移.为0和1中的任意一个数*2-1
  setInterval(snowFall, 30, snow); //每隔0.5秒调用一次,由snowFall完成
  }

  function snowFall(snow) {//定义一个匿名函数,该函数为大雪花降落位移范围
  snow._x += snow.stepX;//横向下落位移
  snow._y += snow.stepY;//纵向下落位移
  if (snow._x<sideDisWidth) {//如果横向位移不超出sideDisWidth值
  snow._x = sideDisWidth+sceneWidth;//为雪花的横坐标附值
  }
  if (snow._x>sideDisWidth+sceneWidth) { //如果雪花的横向坐标大于所附的值
  snow._x = sideDisWidth; //横向位移再回到初始点
  }
  if (snow._y>sideDisHeight+sceneHeight) {//如果雪花的纵向坐标大于所附的值
  snow._y = sideDisHeight;//纵向位移再回到初始点
  }
  }
  addMasker();

  你可以看下flash 帮助 里面讲解很详细
snowxin910
2012-03-18
知道答主
回答量:17
采纳率:0%
帮助的人:12.1万
展开全部
下面这位仁兄使用的是as 3.0哦,你的是flash mx professional 2004的话当然难以理解。建议使用CS 版本的flash,功能会比较强一点。我也有雪花的代码,比较短一点:(只要在舞台做一个雪花图案的影片剪辑,并在astionscript中导出 snow就可以了)
var ar:Array=new Array();

fu();
function fu():void {
for (var i:uint=0; i<60; i++) {
ar[i]=new snow();
ar[i].x=Math.random()*600;
ar[i].y=Math.random()*400;
ar[i].alpha=Math.random()+0.2;
ar[i].height=ar[i].width=Math.random()*10+5;
addChild(ar[i]);
ar[i].addEventListener(Event.ENTER_FRAME ,st);
}
/*for (i=0; i<50; i++) {
ar[i].y+=.01;
if (ar[i].y>=400) {
ar[i].y=-5;
}
}*/
}
function st(e:Event):void {
if (e.target.y>420) {
e.target.y=-20;
e.target.x=Math.random()*600;
} else {
e.target.y+=1;
}
e.target.x+=(Math.random ()-.5)*4;
}
stop();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式