文由FK授权蓝色理想转载
[url=http://www.flashk.org/]
访问FK
[/url]
|
[url=http://www.blueidea.com/articleimg/2004/03/1715/sscrollMC.fla]
下载源文件
[/url]
(129K)
ShowS 平滑上下滚动条(版权规flashk.org所有):
[1b]技术资料[/1b]:
[1b]如何使用[/1b]:
电影剪辑scrollMC的onLoad事件:
showHeight = 350;
myHeight = 350;
speed = 13;
targetMovie = "show.testMC";
showHeight用来指定绑定的MC的显示高度,myHeight指定滚动条本身的高度。speed是滑动的速度,其值越大,滑动越慢。targetMovie指定绑定的MC的路径(相对)。
[1b]技术内幕[/1b]:
主要的ActionScript集中在一个空的电影剪辑中:onClipEvent (enterFrame) {
mcMoved();
}
onClipEvent (load) {
a = eval("_parent._parent."+_parent.targetMovie);
function mcMoved() {
whereY = -(a._height-_parent.showHeight)*(_parent.dragMC._y/(_parent.myHeight-38));
var tempK = whereY-a._y;
if (Math.abs(tempK)>1) {
a._y += tempK/_parent.speed;
nowY = _parent.dragMC._y;
}
}
}
[1b]a = eval("_parent._parent."+_parent.targetMovie); [/1b]用来将指定绑定的MC位置。以后就可以使用a._x、a._alpha来访问这个电影剪辑了,与此相类似的技术还有_parent["myMC"]。
[1b]whereY = -(a._height-_parent.showHeight)*(_parent.dragMC._y/(_parent.myHeight-38));[/1b]主要用来计算绑定的MC应该滚动到的位置。
var tempK = whereY-a._y;
if (Math.abs(tempK)>1) {
a._y += tempK/_parent.speed;
nowY = _parent.dragMC._y;
}
这个比较重要,直接关系到对CPU的占用率。首先,if (Math.abs(tempK)>1)判断当前要滚动到的位置是否离当前位置有一个像素的差值。Math.abs()是计算绝对值的函数。如果不是,即已经滚动到了应该到达的位置,则不进行帧的重绘。(Flash绘制一个帧的图像要耗相当的CPU,事实上,CPU的大部份使用都花在显示上面。AS的执行只要很少的CPU,所以,进行必要的判断,去掉不必要的重新绘制。可以有效地降低CPU的使用率。至少在鼠标没有重新进行交互时可以很好地降低CPU的使用率)。如果其值大于1,则将绑定的MC位置重新计算。
[1b]a._y += tempK/_parent.speed;[/1b]是一个很经常用的滑动公式,其实真正的公式是这样的:[1b]
a._y += (whereY-a._y)/_parent.speed
[/1b] 这里只是在上一步进行了简化。
function goArea(a) {
dragMC._y = (showHeight-38)*a;
}
函数对应三个按钮“滚动到1/3、滚动到1/2、滚动到2/3、”其原理想想应该不难明白。
本站相关文章:
[url=http://www.blueidea.com/tech/multimedia/2003/1299.asp]
运动缓冲效果解晰
[/url]
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1061.html
发表评论
-
flash连接asp数据库简单通讯
2010-04-10 13:45 635第一步要做的是建立数据库。我们使用Access数据库为例,表名 ... -
flash连接asp数据库简单通讯
2010-04-10 13:45 964第一步要做的是建立数据库。我们使用Access数据库为例,表名 ... -
一个flash loading效果
2010-04-10 13:44 676在公司里做动画时候做的一个loading的效果,可以参考但不要 ... -
非常棒的loading制作教程
2010-04-10 13:44 584首先,想说一下我写此文的动机。记得很早之前我曾经说过“没有l ... -
flash进度控制条
2010-04-10 13:44 793这是我在做flash mv时做的,看下效果: 下面是代码: / ... -
AS3 中的is与as操作符
2010-04-09 14:08 811(1) is运算符 在AS3.0新增加的is运算符,主要功 ... -
AS3 中的is与as操作符
2010-04-09 14:08 684(1) is运算符 在AS3.0新增加的is运算符,主要功 ... -
AS3中XML删除节点
2010-04-09 14:08 615E4X规范中定义有delete和deleteByIndex方法 ... -
AS3中XML删除节点
2010-04-09 14:08 794E4X规范中定义有delete和deleteByIndex方法 ... -
用实验中的Actionscript 3.0实现颜色拾取
2010-04-09 14:07 744var linkageId = "Bliss.jp ... -
as3.0编程:鼠标的操作
2010-04-09 11:59 701取得鼠标的坐标: Source: addEve ... -
as3.0编程:鼠标的操作
2010-04-09 11:59 580取得鼠标的坐标: Source: addEve ... -
as3.0编程:键盘的操作
2010-04-09 11:59 968键盘的点击与弹起: Source: stage ... -
as3.0编程:键盘的操作
2010-04-09 11:59 819键盘的点击与弹起: Source: stage ... -
flash as3做几何画板-先写一个按钮类
2010-04-09 11:58 848package draw1 { import ... -
Flash与Ps打造模糊渐变动画
2010-04-08 11:32 679在电子杂志设计制作尤其是模版制作的过程中,需要使用Flash专 ... -
跑动的小火柴人(flash动画)
2010-04-08 11:32 600本教程描绘的是完全用ActionScript做的一个火柴棍小人 ... -
跑动的小火柴人(flash动画)
2010-04-08 11:31 683本教程描绘的是完全用ActionScript做的一个火柴棍小人 ... -
Flash中的电影艺术之镜头技巧
2010-04-08 11:31 717Flash中的电影艺术 好像这里的文章大部分是关于AS的,其 ... -
Flash中的电影艺术之镜头技巧
2010-04-08 11:31 599Flash中的电影艺术 好像这里的文章大部分是关于AS的,其 ...
相关推荐
超详细VisionPro 视觉工具-原理及实例讲解,本资源包含VisionPro中各种工具运用的讲解
jquery圆形平滑滚动导航菜单,供大家一起共同分享学习。
1、点击导航平滑滚动到导航内容处 2、div内滚动时当前导航需要做响应 代码如下: 1、html结构(因为从项目里截取代码数据内容就不贴出来了,不算难点,这个可以根据自己的项目进行调整,相应的方法和类名别弄错就行...
flash 实例讲解 实例操作 flash 实例讲解 实例操作 flash 实例讲解 实例操作
smooth scroll平滑滚动的网页菜单实例代码,大面积网页平滑滚动效果,类似“回到顶部”的滚动功能,鼠标点击后整个网页滚动至对应位置,很动感的网页体验。
结构弹塑性分析程序OpenSEES原理与实例,由华南理工大学的陈学伟博士和林哲博士共同编著而成,讲述OpenSees前后处理软件ETO(Etabs to OpenSees)的原理和应用实例。
Flash动画制作经典实例 flash制作 源码 万花筒 雪花纷飞 电光 遮罩效果 模糊效果 曝光效果 百叶窗效果
《MATLAB神经网络原理与实例精解》随书附带源程序
性能测试原理及实例分析
HBase原理及实例
关于MATLAB神经网络原理与实例精解的源代码文件,有想要学习的可以下载看看
本书结合科研和高校教学的相关课程,全面、系统、详细地介绍了MATLAB神经网络的原理及应用,并给出了大量典型的实例供读者参考。而本文件主要是本书配套的每个章节对应实例的代码,希望可以帮助大家更好的学习MATLAB...
JNI原理及实例解释
Flash动画与游戏高级实例教程(精_韩)
flash 实例 元件与实例 第四讲 续草原制作
联合分析原理与实例-市场研究工具之联合分析原理及实例说明.doc
联合分析原理与实例-市场研究工具之联合分析原理及实例说明.pdf
关于人工神经网络原理很好的ppt课件,对于初学者有很大的帮助。是人工神经网络原理与仿真实例第2版该书的配套资源