|
|
|
[
来路:网页教学网 时间:2007-7-10 3:26:23
点击: ] |
|
|
|
|
|
现在的网页上常常见到图片组的连续滚动效果,如果你掌握了AS的基础知识,也能做出这样的效果,如果你想学,那么跟我来吧!
由于源码中只有一帧,所以就不贴图示了。主要的东东是一个图片MC,实例名是“m”。制作步骤是这样的。先把一组图连起来,组合,相对舞台选择水平和垂直居中,再复制两个图片组合,分别放在两侧衔接好。新建一个MC,把图片MC(实例名为“m”)放进去,相对舞台选择水平和垂直居中,不做别的处理。给这个MC起实例名为“mc”。 接下来该写代码了,在实例名为“mc”的剪辑上加如下代码: 如果你是老鸟,那你顺一遍就明白了;如果你是菜鸟,下面有逐行的解释: onClipEvent (enterFrame) { this.m._x += (_root._xmouse-275)/10; _root.aa = int(this.m._x); if (this.m._x>862.4) { this.m._x = this.m._x-862.4; } if (this.m._x<-862.4) { this.m._x = this.m._x+862.4; } } onClipEvent (enterFrame) { ty=this._yscale; newy=ty+(_root._ymouse-200)/30; if (newy>150) { newy=150; } if (newy<80) { newy=80; } this._xscale=newy; this._yscale=newy; } //*---------------------------------- onClipEvent (enterFrame) { this.m._x += (_root._xmouse-275)/10;//因场景是550,所以中心是275,实例m的X坐标递加(_root._xmouse-275)/10;当鼠标在中心右侧时,(_root._xmouse-275)/10为正值,所以向右滚动;如果+=改成-=就成了鼠标在右侧时,向左滚动。 _root.aa = int(this.m._x);//测试用的,我的习惯 if (this.m._x>862.4) { this.m._x = this.m._x-862.4;// 862.4是实例m里的一个图片组的宽度。如果大于此值,说明实例m已经移动了一个图片组的长度,让this.m._x减去862.4,等于是回到了原位;以此来实现循环滚动。 } if (this.m._x<-862.4) { this.m._x = this.m._x+862.4;//大致的解释参考上面的 } } //*--------------------------- onClipEvent (enterFrame) { ty=this._yscale;//取得实例mc的Y方向比例值 newy=ty+(_root._ymouse-200)/30;//因场景高度是400,所以中心是200;当鼠标在中心上面时,缩小,当鼠标在中心下面时,放大。 if (newy>150) { newy=150;//不能无限的放大,要限制一下 } if (newy<80) { newy=80;//同上 } this._xscale=newy;//X方向比例值 this._yscale=newy;// Y方向比例值 } 需要总结一下吗?我觉得主要的技术在于MC的嵌套上,对内部的MC做滚动,对它本身做缩放,互不影响,这应该是本例的重点技术。至于基它的就是些变量、赋值、判断条件等。补充一下,如果你要缩小的比例<80,可能会碰到问题,因为你缩小后可能会不够长度,连贯不起来。这时你可以在三组图的两侧再增加两个图片组,相应的this.m._x = this.m._x-862.4改成this.m._x = this.m._x-2*862.4,this.m._x = this.m._x+862.4改成this.m._x = this.m._x+2*862.4,应该就完成了。这是本例的又一特点:可扩展性。如果你理解不了,我给画个示意图:
下载源文件 |
|
|
::::站长友情提示:多花一分钟学点什么都好::::
|
|
|
|
|
|
|
|
|
|
|
|
=
= 免责声明 = = |
|
①
欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com |
|
|
|
|
|
|