WEB开发网
开发学院图形图像Flash Flash as教程:文字散射效果 阅读

Flash as教程:文字散射效果

 2008-07-03 11:25:20 来源:WEB开发网   
核心提示: 其中,a,b是坐标系中随机的一个点,Flash as教程:文字散射效果(3),它的x坐标为a,y坐标为b, c是一个递增值,那现在推算下是不是无论该点在哪个象限内,所以this.z最小值为2,因为再减2就为0了,都可以达到放射的目的呢?在第一象限:a>0,b>0,c递增&mda

其中,a,b是坐标系中随机的一个点,它的x坐标为a, y坐标为b, c是一个递增值。

那现在推算下是不是无论该点在哪个象限内,都可以达到放射的目的呢?

在第一象限:

a>0,b>0,c递增———X坐标不断增加,同时Y坐标也不断增加———放射

在第二象限:

a<0,b>0,c递增———X坐标不断递减,同时Y坐标不断增加———放射

在第三象限:

a<0,b<0,C递增———X坐标不断递减,同时Y坐标也不断递减———放射

在第四象限:

a>0,b<0,c递增———X坐标不断增加,同时Y坐标不断递减———放射

思路:

首先,在限定范围内(最好小一点,为他的散射留出更多空间,这样会觉得字从很深的地方飘来,

以下我限定的是-10——9),为复制的MC设定一个随机位置,这就相当于我上面所举例子中的a和b,他们

其实是个坐标初值。

然后,要达到放射效果,还需要一个递增的正变量,即c,

所以我打了个字,转换成了MC,再次转换,命名为mymc,并延长至第3祯,新建一AS层。

为了让要出现的东西依次出现(既可以体现节奏感,又可以防止文字重叠现象),我选择祯循环的编程方式。

第一祯:设一些要用到的变量初值

mymc._alpha = 0;
i = 1;
numOfText = 20;
minOfZ = 1;
maxOfZ= 120;

第二祯:主程序

function randrange(min,max){
    var randomnum=Math.floor(Math.random()*(max-min+1))+min
    return randomnum
}//自定义函数,取两数之间的随机数
duplicateMovieClip("mymc", i, i);
this[i].x = randrange(-11,9);
this[i].y = randrange(-10,9)//我选择的初始坐标范围是-10到9
this[i].z = random(maxOfZ)+1;//1——120之间的整数
this[i].dz = -2;
this[i].gotoAndStop(random(this[i]._totalframes)+1);
this[i].onEnterFrame = function() {
    this.z += this.dz;//做加速运动
    if (this.z       this.x = randrange(-11,9);
              this.y = randrange(-10,9)//这里的this也可以改为this[i]
       this.z = maxOfZ;//this.z
  
时,此时他已经超出了舞台,要不间断播放,需要重新设定他的初值
    }
    this.pers =600/this.z;//由于每次减2,所以this.z最小值为2,因为再减2就为0了,小于1
    this._x = this.x*this.pers;
    this._y = this.y*this.pers;//this.pers会越逐渐递增
    this._xscale = this._yscale=this.pers;
    this._alpha = 1000/this.z;//这里的1000你也可以改,不过别太小
};

上一页  1 2 3 4  下一页

Tags:Flash as 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接