[代码整理]代码实现的循环滚动效果 mygamemylove(2008-5-6 11:42:00)
发表时间:2008-6-26 10:07:00

代码实现的循环滚动效果




网站改版了,所有源文件请到 QQ群:451231623 共享中下载


//滚动初使化
/*mc:MovieClip,滚动的父类
linkid:String, 库符号连接ID
numFx:Number, -1为向左,1为向右
numSD:Number 滚动的速度
*/
function ini_GD (mc:MovieClip, linkid:String, numFx:Number,numSD:Number)
{
//移动距离,用于删除不在显示部分的mc
mc.len = 0;
mc.creati = 0;
mc.killi = 1;
//速度
mc.sd = 5;
//单个元件的宽度
mc.w = 67;
//
mc.linkid = linkid;
mc.numFx = numFx;
//初使生成第一排
if (mc.numFx == 1) {
for (var i = 8; i >= 1; i--) {
mc.creati++;
var mcTem:MovieClip = mc.attachMovie (mc.linkid, "mc" + mc.creati, mc.creati);
mcTem._x = mc.w * i;
mcTem.mc.gotoAndStop (1);
mcTem.mc.txt.text = mc.creati;
}
}
else {
for (var i = 1; i <= 8; i++) {
mc.creati++;
var mcTem:MovieClip = mc.attachMovie (mc.linkid, "mc" + mc.creati, mc.creati);
mcTem._x = mc.w * mc.creati;
mcTem.mc.gotoAndStop (1);
mcTem.mc.txt.text = mc.creati;
}
}
mc.go = function ()
{
this._x += this.sd * this.numFx;
this.len += this.sd;
if (this.len > this.w) {
this.len -= this.w;
//
if (this.numFx == -1) {
this.creati++;
var mcTem:MovieClip = this.attachMovie (this.linkid, "mc" + this.creati, this.creati);
mcTem._x = this.w * this.creati;
mcTem.mc.gotoAndStop (1);
mcTem.mc.txt.text = this.creati;
//
this["mc" + this.killi].removeMovieClip ();
this.killi++;
}
else {
this.creati++;
var mcTem:MovieClip = this.attachMovie (this.linkid, "mc" + this.creati, this.creati);
mcTem._x = -this.w * (this.creati - 9);
mcTem.mc.gotoAndStop (1);
mcTem.mc.txt.text = this.creati;
//
this["mc" + this.killi].removeMovieClip ();
this.killi++;
}
}
};
}
//背景反方向运动
var mcGD_bak:MovieClip = _root.createEmptyMovieClip ("mcGD_bak", _root.getNextHighestDepth ());
//设置遮蔽
mcGD_bak.setMask (mcMask_bak);
ini_GD (mcGD_bak, "linkbak", 1);
//mcGD_bak做可以参照的位置,
mcGD_bak._x = mcGDTem_bak._x;
mcGD_bak._y = mcGDTem_bak._y;
//隐藏参照的位置
mcGDTem_bak._visible = false;
//
//
//滚动列表
var mcGD:MovieClip = _root.createEmptyMovieClip ("mcGD", _root.getNextHighestDepth ());
//设置遮蔽
mcGD.setMask (mcMask);
//mcGDTem做可以参照的位置,
mcGD._x = mcGDTem._x;
mcGD._y = mcGDTem._y;
//隐藏参照的位置
mcGDTem._visible = false;
ini_GD (mcGD, "linkXD", -1);
//
_root.onEnterFrame = function ()
{
//循环
mcGD.go ();
mcGD_bak.go ();
};