|
连续滚动的图片效果 |
http://www.xxqqss.com 学习轻松网 点击量:5426
|
|
|
思路是,把超出视觉范围的图片追加到最后一张图片的未尾或是在Stage的某个位置,只要能跟最后一张图片的位置后面就可以了。
for (i=1; i<7; i++) { this.createEmptyMovieClip("mc"+i, i);//创建一个空白影片(其实是是有I个,这样每个MC的运动才不会影响到其它MC的运动.) this["mc"+i]._x = 10; this["mc"+i]._y = (i-1)*100+20;//设置其X,Y的位置 this["mc"+i].attachMovie("m"+i, "mc"+i, 7*i);//加载内部MC this["mc"+i].onEnterFrame = function() {//加个enterframe事件 this._y = this._y-2;//让每个加载有MC的影片都运动起来 if (this._y<-128) {//判断影片的位置是否到达了指定的位置,如果到达了,就执行以下的语句. this._y = Stage.height+80;//设置过了界限的MC的Y位置为stage高度 } }; }
其实各位可以在这个基础上再加以扩展.这才是学习的好方法。现在我也再扩展一下这段代码的应用性些,首先上面的那段代码只能用于图片一样高的才行,如果图片的高度不一样的话,那图片的的滚动就会出现问题了,而我下面的那些代码呢也有一定的局限性,要把图片大的跟大的一起排列在一起,小的跟小的排在一起。(明?)
var sheight:Number;//前面一类图片的大小,其实这里就是记录前十个小图片的总长度 var flag:Boolean; var jianxi:Number; var speed:Number; var picNum:Number; var totalHeight:Number; //图片的总长度;可在总长度总要保持不变 flag = false; //这个变量是用于标识是不是己经把全部图片加载完 jianxi = 20; //每张图片的间隔的高度 speed = 10; //图片滚动速度 picNum = 20; //图片总数 for (i=1; i<21; i++) { this.createEmptyMovieClip("mc"+i, i); this["mc"+i].attachMovie("pic"+i, "picmc"+i, i); this["mc"+i]._x = 0; this["mc"+i].num = i; if (i<11) {//前十张图片与后十张的图片的高度不一样的. this["mc"+i]._y = (i-1)*(this["mc"+i]["picmc"+i]._height+jianxi); //设置图片的Y位置 sheight = (i-1)*(this["mc"+i]["picmc"+i]._height+jianxi); //其实这里就是记录着第十张图片的Y位置 } else { this["mc"+i]._y = sheight+(i-11)*(this["mc"+i]["picmc"+i]._height+jianxi); //设置图片的Y位置 } if (i == picNum) { //当加载最后一张图片时 flag = true; //把这个标识符设置为TRUE,就意味着,超过视觉范围的图片可以接在后面了 totalHeight = this["mc"+i]._y+this["mc"+i]["picmc"+i]._height; //这是全部图片和间隙的长度总和.每张超过视觉范围的图片都会被加在这个后面. } //每个被加载进来的pic中都有图片,图片上面放着一个透明按钮 this["mc"+i]["picmc"+i].btn.useHandCursor = false; this["mc"+i]["picmc"+i].btn.onRollOver = function() { speed = 0; //当鼠标经过时,让速度为0 }; this["mc"+i]["picmc"+i].btn.onRollOut = function() { speed = 10;//当鼠标经过时,让速度为10 }; this["mc"+i]["picmc"+i].btn.onRelease = function() { //这是当鼠标点击图片上的按钮时触发的事件 //loadBigPic,是我在主场景中定义的一个加载大图片的一个函数.这里就不贴出来了. this._parent._parent._parent._parent.loadBigPic(this._parent._parent.num); }; this["mc"+i].onEnterFrame = function() { this._y = this._y-speed;//让图片滚动起来 if (this._y<(-this["picmc"+this.num]._height)) { //当图片的运动到场景外了.就让这张图片接在全部图片长度的最后面. //(不知道大家能不能明白我的这句话.我也表达不清楚了.) this._y = totalHeight-this._height+jianxi; } }; }
---------------------------------------------------------------------- 第二阶段的代码就是这样了。明天会加上加载大图片,再加上loading,如果哪位都可以在此扩展的啊,应用性强一点,就像楼上说的,用XML来记录图片的外部信息,都是可以的。希望大家多想想,然后写出来,把思路写上来,分享一下!
来源:闪吧 作者:youxunchen
|
|
|
|