Flash实例教学:三维烟花动画制作(2)

2008-04-02 11:03:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  26. setProperty ("itnstar" add i add j, _xscale, 100-num);

  27. setProperty ("itnstar" add i add j, _yscale, 100-num);

  28. }

  29. }


  将以上代码加到第1帧后,再点选第2帧,并写入以下一行代码:

  

stop();

  程式分析:知其然更知其所以然

  上面代码的本质是通过将一个实例复制成多个,并按一定规律分布显示出来,达到烟花绽开的效果。以“//”开头的代码行是程式注释,可有可无,主要作用是对程式代码作一些简单说明,运行时Flash会自动忽略掉他。上面代码中,第2、3行是配置星星影片片段分身的X、Y基点坐标,也就是最后形成的满天星动画的中央点坐标,random (value )函数得到一介于0~value-1之间的随机值。我们知道在三维立体中,远处的物体比近处的物体要暗要小,因此第5行的num是为后面影片片段分身的透明度及缩放设的值,以使整个图像看起来有三维立体的效果。影片片段分身的属性值在25、26、27行配置。第7行中Math.pow (x ,y )函数返回值是x的y次方。

  下面主要说明第19行的函数duplicateMovieClip(target , newname,depth),他是用来复制影片片段分身对象的,其中:target:被用来复制的源影片片段的分身(本例中为mvcstar对象的实例itnstar)

  newname:分身对象(即复制出来的新影片片段)的名称。本例中因为要复制出多个对象,为了不使对象的名称重复,这个参数用“"itnstar" add i add j”这种形式来表示的,and表示在字符itnstar后面再加上数字变量i和j,通过for循环,变量i和j的值将自动向上递增,这样,后面的对象名称将自动变为itnstar01、itnstar02、itnstar11、itnstar12……

  depth:这是个堆叠参数。指定新完成的对象和其他对象重叠时的显示层次,depth越大时,所显示的分身对象越在上。若有两个显示层次相同的影片片段,则先复制的影片片段会被后建立的取代。

  有关影片片段分身所在角度及层次值需要一定的数学运算技巧,这里的设计思想是:用变量i控制影片片段显示几圈,变量j用来控制每圈中的影片片段的个数。在第一圈(i=0)有四个影片片段分身,每一分身相隔360/4=90度,其所在层次为1~4;第二圈(i=1)有八个影片片段分身,每一分身相隔360/8=45度,其所在的层次为5~12,依此类推。

  Just Do It!

  本例中的烟花是呈圆形发散的,这取决于数学公式Math.cos(angle)*r和Math.sin(angle)*r所确定的X、Y值。您能够设计出其他数学公式以获得不同的烟花形状。另外,为使动画更具备逼真的效果,还能够加入烟花升空时的声音特效。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 学习Flash:关于FLASH中音乐的部分配置

下一篇: FlashAS学习:深入BroadcasterMX