这几天出去了 ,没想到回来一打开家族首页就感觉焕然一新。首先就是提示音,一下子才发现自己有那么多未读短消息。
![]() 嗯 ,本着一边做杂志一边学习的态度。今天想分享的是用flash制作影片剪辑的移动缓冲效果 缓冲公式:property = (target - property)/speed; 弹性缓冲效果: x = disx-(disx-x)/a; y = disy-(disy-y)/a; //=============== dx=dx*.a+(_root._xmouse-_x)*.b; dy=dy*.a+(_root._ymouse-_y)*.b; 测试效果图: 制作步骤: 1.创建一个影片剪辑,实力名称为: img 2.在第一帧加入下面代码 //设定要观看的大小(很关键); var wutaix = 550; var wutaiy = 400; //创建用来存储 在x、y坐标上移动的距离,初始值为0; var dirx = 0; var diry = 0; /* 设定弹性系数,弹簧系数a,a越接近1,震动效果越明显, 阻尼系数b,b控制移动的速度,b越接近0,速度越慢。 整个过程就像物理学上的弹簧振子一样; */ var a = .3; var b = .1; this.onMouseMove = function() { dix = _root._xmouse; diy = _root._ymouse; }; img.onEnterFrame = function() { //x坐标变换 if (dix < 0) { dix = 0; } if (dix > wutaix) { dix = wutaix; } /* dx是每次移动水平的距离,相当于水平速度。 随着物体与目标的靠近,速度不断增加, 当和目标坐标重合时,速度达到最大, 继续移动,和目标的距离为负,速度减小。 其中的参数a相当于没有摩擦时的加速度 。 b是摩擦对速度的减少作用。 dx=dx*.a+(_xmouse-_x)*.b是由下列公式推导出来的: dx=(_xmouse-_x)*.b; dx+=dx*.a */ dirx = dix / ((-1) * wutaix) * (this._width - 550); dx = int(dx * a) + int(dirx - this._x) * b; this._x += dx; //y坐标变换 if (diy < 0) { diy = 0; } if (diy > wutaiy) { diy = wutaiy; } diry = diy / ((-1) * wutaiy) * (this._height - 400); dy = int(dy * a) + int(diry - this._y) * b; this._y += dy; }; 源文件下载地址 : 对不起!您没有登录,请先登录论坛. |
|
|
沙发#
发布于:2011-03-30 16:15
大致看懂了,要是再加上缓冲的进度百分比和具体使用方法(比如想给个视频加上的方法)就更好了。爪机不能评分,一会回去评。
|
|
2楼#
发布于:2011-03-30 17:25
刚去图书馆借了本FLASH教材。还没翻过呢
|
|
3楼#
发布于:2011-03-30 18:06
回 2楼(蛋蛋有伤) 的帖子
那就直接奔as 3.0吧 ,都说as 2.0的面向对象很混乱,我也准备慢慢去学习as 3.0 |
|
|
4楼#
发布于:2011-03-30 18:15
回 3楼(白の闇) 的帖子
原来你说的移动缓冲是这个意思啊!恩!我用手机上的时候理解成loading的缓冲呢!呵呵…… |
|
5楼#
发布于:2011-03-30 18:32
回 4楼(琥珀) 的帖子
进度条的应该是 已下载的长度(或者是加载的长度)/ 文件总长度 *100 把这个值放到一个动态文本框里面吧不晓得对不对 |
|
|