当前位置:软件学习 > Flash >>

用Flash制作有趣的彩色泡泡动画

这是一个反复随机出现彩色圆点的动画,我们先看看效果实例,接下来我们谈谈实现的原理、所用的重点函数以及具体实现方法,最后提供.fla源文件下载学习。


  实现原理:利用duplicateMovieClip复制movieclip,用setProperty与random函数所取的随机数决定复制出的movieclip的位置。最后利用new Color,setRGB与random函数来随机决定复制出的movieclip的颜色。

  本例重点语句:

  random()函数:random在actionscrip中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇妙效果的前提。
  语法:
  random(value);
  参数
  value:所生成随机整数的上限
  实例
  random(4)所返回值可能为0,1,2,3

  new color()函数:new color()是一个面向对象color的函数,在使用color对象前必需使用构造器new color()来创建一个color对象
  实例。new color()的语法:
  new color(target)
  参数
  target是使用这个颜色方案的电影剪辑

  setRGB()函数:setRGB()也是一个面向对象color的函数,它可以为一个颜色对象指定一个RGB值。语法:
  xxx.setRGB(0xRRGGBB)
  参数0xRRGGBB设置一个16进制的RGB值,RR,GG,BB各为16进制数,用来指定颜色。
  实例
  xxx.setRGB(0x006699)

  duplicatemovieclip:当动画正在播放时复制一个movie clip。复制出的moveclip与被复制的movieclip完全一样,并从第一帧开始播放。
  语法:
  duplicatemovieclip(target,newname,depth)
  参数
  target:要复制的movieclip的路径与名称
  newname:复制出的movieclip唯一的名称
  depth:景深

  setProperty:在movieclip播放时设置其属性。
  语法:
  setProperty(target,property,expression)
  参数
  target:要设置属性值的movieclip的路径与名称
  property:待设置的属性
  expression:待设置的属性值
  实例
  setProperty("xxx",_x,100)
  将xxx的x座标设为100

  本例完成步骤:

  新建文件,设置文件宽,高均为200,背景色为黑色。
  选择菜单insert/new sysmbol建立新的元件sysmbol 1,用圆形工具在ball元件中画一个无边线的圆,任意填充一种颜色。
   选择菜单window/panels/info,在弹出的info面板上设置其宽高均为31.0,window/panels/align,在弹出的align面版上使其居中对齐。
  选择菜单insert/new sysmbol,建立新的元件sysmbol 2,从library中将sysmbol 1 拖入,在align面板中设置对齐,使其距中,在第15,30帧新建关键帧。单击第1帧,选择菜单window/panels/effect在弹出的effect面板中设alpha=0%。

  单击第15帧,将sysmbol 1的宽,高设为71.0。

  单击第30帧,window/panels/effect在弹出的effect面板中设alpha=0%。从第1到15帧与第15到30帧分别创建动画。



  回到scene 1,将sysmbol 2拖入场景命名为xx,在scene 1中新建一层layer2,在第2帧新建关键帧,双击第2帧,弹action面板,输入如下action:





  if (Number(i)>50) {
   i = 0;}
  ///当i>50时令i=0,这样可以使复制的movieclip保持在50个,不会浪费系统资源。
  duplicateMovieClip ("/xx", "xx" add i, i);
  ///将scene1中的xx元件复制为xx add i,即当i=1时复制为xx1,当i=2时复制为xx2......
  setProperty ("xx" add i, _x, random(400));
  ///设置xx add i的x座标,random(400)是因为我们的动画宽为400。
  setProperty ("xx" add i, _y, random(400));
  ///设置xx add i的y座标,random(400)是因为我们的动画高为400。
  col = random(0xafafaf)+0x999999;
  ///随机设置一个颜色值
  xzcol = new Color(_root["xx" add i]);
  xzcol.setRGB(col);
  ///定义xx add i的颜色
  i = Number(i)+1;
  gotoAndPlay (1);
  ///从scene1的第一帧开始播放,重复以上过程

  技巧提示:

  我们设立了一个循环,但此循环并不在一帧内完成,而是有一帧的延迟,(从第2帧到第1帧再到第2帧的循环)。这样,我们就能作出movieclip一个接一个出现并永不终止的效果。也才能实现各个movieclip不同时开始播放。怎么样,很简单吧?希望本文能对您熟悉flash的基本操作,了解actionscript语法有所帮助。.fla源文件下载学习

【责任编辑:Shiny

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,