上面FLASH实例-鼠标控制图片左右循环移动,不需制作一般的动画动作,仅用AS实现。其特点是制作简单、当图片多时更显方便。 一、AS语句
//仅适用于图片宽度乘2大于或等于舞台宽度的情况 wtkd=660;//舞台宽度 tpkd=555;//图片宽度(原始图片宽度+空隙) ydcs=10;//移动参数数值大移动慢 tpxwz=0;//图片X轴坐标的初始位置 tpywz=0//图片Y轴坐标的初始位置 tps=6//图片数量 tpn=2+tps //从库里调出图片1、2...n分别存在tp1、tp2...tpn //并且头尾加tp(n-1)、tpn、tp1、tp2...tpn、tp1、tp2 for (i=-1;i<tpn+1;i++){ attachMovie(i, ["tp"+i], 1100-i); if (i==-1){ attachMovie([tps-1], ["tp"+i], 1100-i); } if (i==0){ attachMovie([tps], ["tp"+i], 1100-i); } if (i==tpn-1){ attachMovie("1", ["tp"+i], 1100-i); } if (i==tpn){ attachMovie("2", ["tp"+i], 1100-i); } this["tp"+i]._y=tpywz; } //根据鼠标位置的方向和偏移量循环移动图片 this.onEnterFrame = function(){ sbxwz=_root._xmouse//鼠标X轴的位置 tpxwz-=( wtkd/2 - sbxwz ) / ydcs;//当前X轴的位置 //各图片当前X轴的位置 for (i=-1;i<tpn+1;i++){ this["tp"+i]._x=tpxwz+(i-1)*tpkd; } //判断尾部tp1的位置,确定左移循环。 n1=tpn-1 if (this["tp"+n1]._x<=0){ tp1._x=0; tpxwz=0; } //判断tp1的位置,确定右移循环。 if (tp1._x>=wtkd){ tp1._x=wtkd-tpkd*tps tpxwz=wtkd-tpkd*tps } }
注意:请将上述语句中的<改为英文<
二、制作过程 1、将上述AS语句粘帖到第一层第一帧,根据你的需要修改(舞台宽度、图片宽度、移动参数、图片X轴坐标、图片Y轴坐标、图片数量)参数值。 2、导入图片(1、2......n)到库里,建立与图片相应的图片影片剪辑。图片影片剪辑的“链接”标识符分别为1、2......n 三、说明 仅适用于图片宽度相等且图片宽度乘2大于或等于舞台宽度的情况。 |