快速业务通道

FLASH实现滚动条+网页书签效果

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-13
askheight为我们在第一帧已经定义也的mask的高度
从而,scrolling移动的值与txt移动的值之间的控制比例为:-(maskheight-scrolling._height)/(txt._height-maskheight),这里之所以有一个负号"-",是因为当scrolling与txt的移动方向是相反的。设scrolling移动的值为distance,则有txt移动的值为-distance*((txt._height-maskheight)/(maskheight-scrolling._height))(如上面代码的倒数第3行)

选中as层的第三帧,按F9打开Actions面板,输入如下代码:
gotoAndPlay(2);

说 明:通过第二帧和第三帧的反复循环播放,不断判断鼠标是否按下、鼠标的位置,从而实现滚动条的效果。

第三步:书签效果
选中as层的第一帧,按F9打开Actions面板,在原来的代码的后面输入如下代码:
//txt下的各title"在txt中"的位置:
position = new Array();
for (i=1; i<=8; i++) {
position[i] = eval("txt.title"+i)._y-eval("txt.title"+i)._height/2;
}
n = position[1]+txt.y1;//当txt.title1位于最上方时,txt.title1"在主场景中"的位置
delete i;
//书签部分:
for (i=1; i<=8; i++) {
titlename = "title"+i;
eval(titlename).onPress = function() {
this.y1 = txt._y;
num = Number(substring(this._name, 6, -1));
txt._y = n-position[num]+3;
scrolling._y -= (txt._y-this.y1)*((maskheight-scrolling._height)/(txt._height-maskheight));
//滚动位置的变化
this.gotoAndStop(1);
};
eval(titlename).onRollOver = function() {
this.gotoAndPlay(2);
};
eval(titlename).onRollOut = function() {
this.gotoAndStop(1);
};
}
delete i;
delete titlename;


分别获取txt中的title1~title8“在txt中的”位置。

在这里要说明一点:
我们平时通过mc._y来获取的mc在y方向的位置,不论这段代码放在哪里,其值都是该mc的原点(即mc的x=0,y=0处)在其上一级mc中(_parent)y方向的位置,而不是在主场景(_root)中的位置,当然,如果mc直接放在主场景中则为主场景中的位置。例如有这样一种结构:

如上图所示,主场景中有mc2,mc2中有mc1,mc1中有mc,如果设一变量_root.mcy来存放mc的y方向位置,无论是在主场景中还是在mc2或mc1中,_root.mcy的值都是mc的原点在mc1中的位置,如果要获得mc在mc2中的位置,只要换成mc1.mc._y-mc1._y就行了。

我们这里设一个数组来存放txt中的title1~title8“在txt中的”位置,之所以要减去eval("txt.title"+i)._height/2即该title的高度的一半,是因为我们这里要得到的是title的顶部的位置。

获取当txt.title1在场景的最上方时,txt在主场景中的y方向位置n。

实现书签效果。
通过txt.title1~txt.title8在txt的位置之间的差值和它们与txt.title1在主场景中的位置(n)可以分别换算出txt.title1~txt.title8在场景的最上方时txt在主场景中的y方向位置。
通过scrolling与txt的控制比例,反过来用txt的移动来控制scrolling位置变动,些时,控制比例变为(maskheight-scrolling._height)/(txt._height-maskheight)

>>点击下载FLA源文件 关键词:网页

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号