查看完整版本: 代码实现的循环滚动效果

smallerbird 2008-6-26 10:20

代码实现的循环滚动效果

代码实现的循环滚动效果
先看效果:
[flash]http://www.mygamemylove.com/demo/2008626100851.swf[/flash]

下载地址:[url=http://www.mygamemylove.com/t_html/599.html][color=#800080]http://www.mygamemylove.com/t_html/599.html[/color][/url]


//滚动初使化
/*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 ();
};
页: [1]
查看完整版本: 代码实现的循环滚动效果