flash源码 解释一下

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:05:44
function onEnterFrame()
{
++BouncerIndex;
if (BouncerIndex % 2 == 0)
{
this.attachMovie("Bouncer", "Bouncer" + BouncerIndex, BouncerIndex);
} // end if
if (BouncerIndex >= MaxBouncer)
{
BouncerIndex = 0;
} // end if
} // End of the function
MaxBouncer = 60;
BouncerIndex = 0;
有什么效果~~~~~~~

这段代码的作用就是反复地把库中某一元件绑定到舞台上,但是舞台上始终只会出现30个元件实例,从Bouncer2、Bouncer4、Bouncer6...Bouncer60这样的。

因为以上代码没有设定绑定出来的实例的位置,所以实例位置会重叠,好像只有一个,可以稍作修改:
MaxBouncer = 60;
BouncerIndex = 0;
function onEnterFrame() {
++BouncerIndex;
if (BouncerIndex%2 == 0) {//通过取模,得到偶数
attachMovie("Bouncer", "Bouncer"+BouncerIndex, BouncerIndex, {_x:200+BouncerIndex, _y:200+BouncerIndex});//这里增加了位置定义
trace("Bouncer"+BouncerIndex)}
// end if
if (BouncerIndex>=MaxBouncer) {
BouncerIndex = 0;//到了60以后索引号重新从0开始,也就是说依然会复制出Bouncer2、Bouncer4、Bouncer6...Bouncer60这样的,但是元件不会增加,这是因为,
新绑定出来的会替换掉原先这个depht深度上的旧的。比如,上一次复制出的Bouncer2,层深为2的话,这次又复制出新的Bouncer2,层深还在2,那么根据层深的规则,同一层深,不能放两个元件实例,新来的替换原先的,所以绑定出来的实例不会增多。
//你也可以试一试把这句换成delete onEnterFrame体会有何不同
}
trace(BouncerIndex)
// end if
}
// End of the function

然后你拿这段代码去测试,测试时,代码粘到第一帧,
别忘了这一步:
新建一个元件,随便放点什么东西,做好后,库里就有了这个元件了。选这个