艺虎动画 > 彩纸文字贺圣诞 彩纸文字贺圣诞

彩纸文字贺圣诞 彩纸文字贺圣诞

翼虎动漫   2010-7-15

 

 

 

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

  本例重点语法:

  相关函数:random(),new color(),setRGB(),duplicatemovieclip,setProperty,文章最后给出它们的详细语法和用法参考以及源文件下载学习。


  本例完成步骤:

  一、基本元件的建立:

  建立文字元件“Happy New Year”,设置为黄色,命名为“text”,再新建symbol命名为“feng”,用pencil tool随意绘制一个无规则的几何形状(如图2),在第25,50帧建立关键帧,并改变这两帧上的几何图形的大小与位置,用arrow工具改变其形状,最后从第1帧到25帧,第25帧到50帧建立shape动画。



二、as控制部分

  新建symbol,命名为“feng movie”,将“feng”拖拽到scene 1,命名为“xx”在第2帧新建关键帧,双击此帧,输入如下actions:

  while (i<500) {
    duplicateMovieClip ("xx", "xx" add i, i); //复制名字为xx的mc
    setProperty ("xx" add i, _xscale, random (80));
    setProperty ("xx" add i, _yscale, random (80));//设置复制出的mc的变形,用random设置其变形值在0到80之间
    setProperty ("xx" add i, _x, random ( 130));
    setProperty ("xx" add i, _y, 5+random ( 40));//设置复制出的mc的位置
    col = Random(0xafafaf)+0x999999;
    xzcol = new Color("xx" add i);
    xzcol.setRGB( col ); //使复制出的mc有随机的颜色
    i = i+1;
  }
  //当i>500时,停止复制mc,也就是说将名字为xx的mc复制了500个,并且每一个都拥有随机的颜色、大小、位置。
  stop ();

  在library中双击feng元件,开始对其进行编辑,双击其第50帧,输入如下as:
  gotoAndPlay (random ( 40));
  //当此mc播放一次后,会随机的从第1帧到第40帧之间的任意一帧开始播放。

  三、最后组装

  回到scene1,将“text”元件拖拽到layer 1,再新建两层,分别拖拽“feng movie"与“text”到layer2,layer3。注意将layer 1中的文字与layer3中的文字对齐,右键单击layer3, 选择mask。好!到此为止,我们完成了文字特效的制作,你可以预览一下效果,再进行一些细致的调整。
 四、重点说明

  大家可以发现,本例中所用到的都是最基本的as命令,但是效果却非常的好,因此要提醒大家,并不是要深奥的技术才能做出漂亮的效果,重要的是你的思维方法,你的创造力,你应用技术的能力。在本例中重点不在于如何作出随机的彩色碎片,而在于利用文字对as效果遮照而产生的精彩画面。希望大家能好好掌握。

  附:相关函数语法说明:

  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