flash电子书鼠标拖拽翻页效果原理

设置遮罩和阴影之后的最终品

主要原理:

  • 将电子书分为3个内容层,叠放顺序如图.第一层为当前页面层,是现在正在显示的页面;第二层是随鼠标拖拽时卷起的页角,第三层是当页角卷起时,露出下一页的层。
  • 设置遮罩:当页边卷起时,层1仅显示四边形FBDE内部分,层2仅显示ABCD部分,层3仅显示BGHD部分.
  • 旋转:层2内的内容要随着鼠标运动而不停变换倾斜角度,其角度始终与AC边斜度一致.
  • 翻页:当页面完全翻过时,层1的当前页数=当前页数+1

程序的核心在于如何获得四个点ABCD的坐标,我使用的是求垂直平分线的方法,既:点C是鼠标位置,点H是页角位置,BD既为此两点间的垂直平分线.由已知的C,H坐标求出直线BD的一次函数y=kx+b以后再求出其与FG,EH的切点,既得点B,D坐标,点A是点G于直线BD的对称点,通过求点G对BD的对称点既可得点A坐标.

demo1: 4个顶点的计算:将鼠标移到黄色热区并拖动

其他几个要点:

限制C点范围:当鼠标在下图灰色区域内时,点C的坐标既等于鼠标坐标,当鼠标离开灰色区域时,点C必须停留在区域内.弧KML是以点J为圆心,KJ为半径的圆,弧KNL是以点I为圆心,IK为半径的圆(demo1既未限制C点范围,若鼠标超过弧形区域就会出错.

响应事件:设置4个热区,分别位于书的4个顶点,分别设置rollOver,rollOut,releaseOutside,release事件函数.事实上这一部分函数编写极费时间,需要考虑各种各样的可能性和针对性的处理方法.

鼠标吸附及黏滞:当鼠标进入热区和快速移动时,页角是逐渐黏附向鼠标的,这样可以使动画看上去更流畅.demo4设置了吸附,demo1没有设置.

阴影:翻页时的阴影须时刻与直线BD的位置保持一致,书的背景阴影要考虑到首页和末页两个特殊情况.

首页与末页:在翻动到首页与末页时层3遮罩须重新设置为整本书宽的1/2




评论: 7 | 引用: 146 | 查看次数: 6968
  • 1
oxycodone hydrocodone [2008-07-15 07:00 AM]
标题: oxycodone hydrocodone
链接: http://safpharms.freecities.com/hydrocodone/oxycodone-hydrocodone.html
摘要: Online finance related info on oxycodone hydrocodone here: http://safpharms.freecities.com/hydrocodone/oxycodone-hydrocodone.html

夕夕 [2007-06-25 04:42 PM]
这位大大哥,能否把你的源文件给小妹我look下,我不会代码,不知道怎么写
然后你能不能做我师傅~~


ps:题外话(看到那句“我相信自己”,一直原来我都徘徊在,要不要继续相信自己,你的这句话让我此刻更加坚信要相信自己。)
amily [2007-06-15 10:19 AM]
呵呵,我是菜鸟,你的blog很多好东西,但也很多我看不懂。
Jexm [2007-06-11 06:18 PM]
不知你指的是哪里?
yangyang [2007-06-08 08:29 PM]
老大 能不能把你写的函数做个注释啊 每个函数干什么的 看不懂
莉香香 [2007-02-16 05:44 PM]
图片怎么看不到Y~~~!





----------我的广告签名----------
湿疹
过敏性鼻炎
广告灯箱
换画灯箱
园林
----------我的广告签名----------
yfl [2006-12-04 12:08 AM]
COOL! ! 很棒的教學 ! ! 在你的例子里,共有10页,包括封面,封底.请问各个页面的排列关系是怎样的呢?是否是倒排序,从page10,page9,page8...page1?请问能否解释一下. 还有一共需要设置几个遮罩层? 本人水平尚浅, 接触Flash时间不长,若能得大虾指点一二, 感激不尽. 我的E-mail:yfang_liu@hotmail.com.  
Xlong [2006-10-26 04:38 PM]
不错.接触这个东西很久了,但一直不知道怎么做.这下可以好好学学.
  • 1
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭