Flash as教程:文字散射效果
第一部分:同一坐标点散射,类似烟花效果
目标:大量文字从一个原点向四周散射
“大量”———————很显然,要用到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 > bottom) {
this.removemovieclip();
}//end if
}
}
ok,代码结束,以下我谈谈我为什么不用duplicatemovieclip而用attachmovie
我们都知道把duplicatemovieclip或attachmovie前面加一个变量,很方便调整mc属性,书写也简单,但实
现方式有两种。
起初我是用duplicatemovieclip,前面设定了一个变量,即:
dupmc=duplicatemovieclip("mymc","mymc" i,10 i)
trace(dupmc)//测试用
输出undefined,而换成attachmovie就能正常输出了
所以我选择了attachmovie,但说实在话,attachmovie也不是什么好鸟,mc一大,就会延迟进度,所以这是个问题,欢迎共同探讨,我就来抛砖引玉。
上一篇: python基础教程之自定义函数介绍