提示:这是个很妙的效果,说这句话是为了引起你的阅读兴趣,提供思路为主,以文字为例,更好的效果如把文字换成图片散射依照这个思路应当可以很完美的实现,同时,第三部分的BUG已经清除,所以我对本文章作下修改,谢谢各位的帮忙。
第一部分:同一坐标点散射,类似烟花效果
目标:大量文字从一个原点向四周散射
“大量”———————很显然,要用到duplicatemovieclip或者attachmovie,这里我选择attachmovie,至于
什么原因,以下我将阐述。 “散射”——————x,y偏移,结合Math.random()就是随机偏移.随机数的取值要有正且有负,因为散射是四面八方的X,Y偏移。 “一个原点”————这个效果的原理理解关键点就在这里,一个原点,换句话说就是将复制出来的MC坐标归于一个位置,这样任意一个x,y偏移值,播放起来就是一个散射,他不同于那种“不同坐标点散射”,即如果你把复制出来的坐标值随机设定,加上一个单纯的x,y偏移,MC会到处乱飞,画面会毫无规律。这一点一定要理解。
实现步骤:
1,随便做个带文字的MC,在库中linkage名为mymc
2,舞台时间轴代码:
LEFT = 0; TOP = 0; RIGHT = Stage.width; BOTTOM = Stage.height; maxspeed=25 maxmc=100 minmc=20 function randrange(min,max){ var randomnum=Math.floor(Math.random()*(max-min+1))+min return randomnum }//自定义函数,取两数之间的随机数 mcnum=randrange(minmc,maxmc) trace(mcnum)//测试用 for(i=0;i<=mcnum;i++){ dupmc=attachMovie("mymc","mymc"+i,10+i) trace(dupmc)//测试用 dupmc._x=200 dupmc._y=200//设定同一个坐标位置 dupmc._xscale=dupmc._yscale=randrange(0,100) dupmc.speedx=randrange(-maxspeed,maxspeed) dupmc.speedy=randrange(-maxspeed,maxspeed)//每一个复制出来的MC都会有一个随机x,y偏移(从自己的负值到自身值,保证了坐标既有正也有负) dupmc.onEnterFrame=function(){ this._x+=this.speedx this._y+=this.speedy if (this._x < LEFT || this._x > RIGHT || this._y < TOP || this._y > BOTTO |