研究性学习数学哪家超市最便宜

上传人:仙*** 文档编号:64569755 上传时间:2022-03-21 格式:DOC 页数:25 大小:150.50KB
收藏 版权申诉 举报 下载
研究性学习数学哪家超市最便宜_第1页
第1页 / 共25页
研究性学习数学哪家超市最便宜_第2页
第2页 / 共25页
研究性学习数学哪家超市最便宜_第3页
第3页 / 共25页
资源描述:

《研究性学习数学哪家超市最便宜》由会员分享,可在线阅读,更多相关《研究性学习数学哪家超市最便宜(25页珍藏版)》请在装配图网上搜索。

1、用Flash做滚动条文本用Flash做滚动条文本做电子书需要文字,文本模板大家估计也用的很多,估计很多人对这个有兴趣吧,呵呵!下面我来教大家具体的做法看完教程,照着做一下,你也就会弄了。先看看效果吧。制作步骤:1、打开flash2、新建一个AS2文件,然后保存一下。3、按T或者点击文本工具,拉一个框,文本类型为动态文本,多行(选多行为垂直,选单行为水平)。4、点击窗口组件,然后选择User Interface下面的UIScrollBar,拖到场景里5、移动拖进来的到你之前拉的文本框里面(虚线的),注意移动的时候要出现对齐的虚线,移动到边上之后调整大小,适应你拉的文本窗口!6、接下来你就可以在文

2、本框里面输入文字了,呵呵!弄好之后按ctrl+回车测试一下!怎么样,不错吧。最后还是那句老话,光看看是不行的。自己动手做一个吧!flash滚动条制作 前言:自己刚开始学flash的时候,看了好多滚动条教程都云里雾里,特别是var了无数个变量后,还传递来传递去的,最后都不知道在算什么了。而用组件即浪费又不利于修改外观。其实对于新手,需要由简入深来理解,开始先不要追求功能,先实现最基本的拖动就可以了,于是早起写了一篇教程,一条核心代码就实现功能。班门弄斧高手不要笑话。首先看这张图,那么多线条,其实就黄色框内的是有用的控制部分。遮罩不用说了,就是放个东西在你要显示的范围内,把图片放到被遮罩的位置。p

3、ane其实也是没用的,让别人知道个拖动范围而已。接着,为舞台上的实例命名图命名为:move_pic拖动条命名为:move_bar新手不要忽略了这步哦,本人以前总是忘记命名,每次都是代码写完了却找不出错误,最后才发现原来还没命名。命名规则也很重要,有时候随便命个pic啊什么的,实例多了容易出错,而且习惯之后就难改过来了。到这里工作就完成80了,是不是很简单呢。接下来,开始在最上面那个帧里写滚动条的代码,先看我初步写的:move_bar.onMouseDown = function() move_bar.startDrag(0, 214, 0, 214, 112); ; move_bar.onMo

4、useUp = function() move_bar.stopDrag(); ; this.onEnterFrame = function() ;这里写成函数的形式,其实可以这样理解:move_bar.鼠标一旦按下= 功能() move_bar.startDrag(0, 214, 0, 214, 112); ;startDrag内的参数:0代表不锁定在拖动块的正中间,一般我们做拖动的时候都是不锁定的,可以让用户拉着对象的任意部分拖动。后面四个数字是划块的拖动范围。初学的时候往往会不知道函数怎么用,参数怎么写,这时候最好的方法不是问,是选中这个函数,然后按F1,帮助里什么都有。你看是不是很详细

5、呢,还有相关函数的用法和例子。同理:move_bar.一旦鼠标离开 = function() move_bar.stopDrag(); ;这里要说明的是,不知道从flash几开始,mc可以实现按钮的所有功能了,onPress等语句同样可以用在mc上,所以,这里你也可以写成onPress,onRelease,效果是一样的。最后还有10没完成:this.onEnterFrame = function() ;我们先不用在函数内部写东西,我们先来理解一下什么是onEnterFrame,这个东西是指一旦进入这帧以后会发生什么事情。重要的它是循环执行的,你想他停都不是那么容易的。当我们要让某些函数往复运行

6、的时候,就用到他。这里我们要不断判断划块的位置(move_bar._y)来确定图片的位置(move_pic._y ),那么代码肯定就是:move_pic._y = (什么什么什么)move_bar._y那么只要上过初中的朋友都不会对这个问题陌生,我们知道了图片和划块的两个边缘状态(图片到底,划块到底;图片到头,划块到头)图示如下:于是,解一个二元一次方程就能确定系数了,在这个实例中:move_pic._y = -move_bar._y*67/28+0;把他写到那个循环函数里,就是: this.onEnterFrame = function() move_pic._y = -move_bar._

7、y*67/28; ;之后,你就可以在这个基础上添加各种效果,包括缓冲啊,按钮啊,等等的。熟练以后,还可以试着编写那些直接通过运算确定各个坐标的复杂滚动条。不知道大家是否觉得有收获,欢迎讨论。這裡提供了進一步的滾動條教程給大家參考.滾動條其實不難做, 主要方法如下: 演示例子: 1. 建立一個動態文本(myText), 再來建立一個滾動條(scrollBar), 如圖: 2. 在幀上的控制代碼為 :scrollBar.initial = function() /定義滾動條的最高和最低位置this.min = myText._y;this.max = this._y+(myText._height

8、-this._height);inc = int(Math.abs(this.max-this.min)/myText.maxscroll);scrollBar.onPress = function() /當滾動條被點下的時候this.startDrag(false, this._x, this.min, this._x, this.max); /根據上方定義的變量賦予滾動條的拖拉範圍this.onEnterFrame = function() /拖拉時循環決定文本的滾動myText.scroll = int(scrollBar._y/inc);scrollBar.onRelease = fu

9、nction() /滾動條放開的時候this.stopDrag(); /停止拖拉delete this.onEnterFrame; /刪除循環以釋放資源的占用;scrollBar.initial(); /開始定義 就這樣而已. 很簡單吧. 如果有興趣的朋友可以進一步的增加功能Flash制作带缓冲的滚动条普通的滚动条在内容移动的时候看上去很生硬,怎么让它看上去舒服一点呢?加上缓冲!这样看上去会非常流畅舒服。总共只有两个元件和一个动态文本框(为了能使用遮罩把字体都嵌入了): 1,滑块,实例名move_bar; 2,一个遮罩元件,用来控制显示内容区域的大小,实例名mask; 3,动态文本实例名为tx

10、t。 下面是代码,写在桢上就行了。/首先定义滑块的移动范围 barUp = 67; barDown = 204; barPos = 446; /然后是缓冲的程度,速度值越大缓冲越明显 speed = 6; /然后这个是计算比例,也就是滑槽和内容的可移动长度之比 prop = (txt._height-mask._height)/(barDown-barUp); /记录下内容的最初位置 txtOrigin = txt._y; /在滑块上按下的时候开始拖动,down用来判断是否处在拖动中 move_bar.onPress = function() move_bar.startDrag(0, bar

11、Pos, barUp, barPos, barDown); down = 1; ; /鼠标松开的时候停止拖动,down变为0 move_bar.onMouseUp = function() move_bar.stopDrag(); down = 0; ; /这个是关键,enterFrame加上if(down),也就是在拖动的时候不停地执行if里面的程序 this.onEnterFrame = function() if (down) /将此时滑块的y值减去滑块上限,计算出滑块向下移动的距离,乘以之前算出的比例,就得到了文本内容应该向上移动的距离 txtMove = (move_bar._y-b

12、arUp)*prop; /原来的位置减去距离,得到文本内容现在应该在的位置,也就是目标位置 txt.m_y = txtOrigin-txtMove; /文本内容y值的每一次变化量=(目标位置-当前位置)除以缓冲速度。注意这一句不能放在if循环里面,否则鼠标一松开缓冲就停止了 txt._y += (txt.m_y-txt._y)/speed; ;OK, 测试一下,别忘记把桢数设高一点(我用的是48),这样看上去效果流畅。代码考虑了易用性,使用在其他地方的时候,只需要改一下滑块的范围,设好各个元件的实例名就可以了。flash自制滚动条本站最新推出 无须注册直接投稿 投递文章减小字体增大字体這裡提供

13、了進一步的滾動條教程給大家參考.滾動條其實不難做, 主要方法如下: 演示例子: 1. 建立一個動態文本(myText), 再來建立一個滾動條(scrollBar), 如圖: 2. 在幀上的控制代碼為 : scrollBar.initial = function() /定義滾動條的最高和最低位置this.min = myText._ 這裡提供了進一步的滾動條教程給大家參考.滾動條其實不難做, 主要方法如下: 演示例子: 1. 建立一個動態文本(myText), 再來建立一個滾動條(scrollBar), 如圖: 2. 在幀上的控制代碼為 : scrollBar.initial = functio

14、n() /定義滾動條的最高和最低位置this.min = myText._y;this.max = this._y+(myText._height-this._height);inc = int(Math.abs(this.max-this.min)/myText.maxscroll);scrollBar.onPress = function() /當滾動條被點下的時候this.startDrag(false, this._x, this.min, this._x, this.max); /根據上方定義的變量賦予滾動條的拖拉範圍this.onEnterFrame = function() /拖

15、拉時循環決定文本的滾動myText.scroll = int(scrollBar._y/inc);scrollBar.onRelease = function() /滾動條放開的時候this.stopDrag(); /停止拖拉delete this.onEnterFrame; /刪除循環以釋放資源的占用;scrollBar.initial(); /開始定義 就這樣而已. 很簡單吧. 如果有興趣的朋友可以進一步的增加功能 FLASH实现滚动条 网页书签效果第一步:场景中的元素因为这一步主要是在场景中加入文字和图片,大家可以下载源文件后用Flash打开自己研究,这里就不详细介绍各元素的画法了。点击

16、下载FLA源文件关于场景中的元素,这里要说清楚的是各个MovIEClip(影片剪辑,以下简称mc)的命名,如下图所示(注:这里说的命名,是指把mc放到场景中后在Properties面板中的命名,而不是在Library中的命名,见图中红色线条框出的部分):说 明:对应于Timeline(时间线)上的各层: mask层:只有一个mc,名为mask; scrolling层:名为scrolling; txt层:mc名为txt。txt内,八个mc,从上至下分别命名为title1title8; menu层:从上至下分别命名为title1title8;第二步:滚动条 选中as层的第一帧,按F9打开Actio

17、ns面板,输入如下代码: /滚动条初始化开始:scrolling.onPress = function() this.gotoAndStop(dark);/滚动条变暗lock = no;scrolling.onRelease = function() this.gotoAndStop(light);/滚动条变亮lock = yes;maskheight=177;/mask的高度/滚动条初始化结束txt.ymin = txt._y;/txt在y方向的初始值(最小值)txt.y1 = txt.ymin txt._height-maskheight;/txt在y方向最多可以到达的地方(最大值) 说

18、明:设一变量lock,记录鼠标是否在滚动条(scrolling)上按下,按下时,lock值为no,反之则为yes;maskheight为文字蒙板(mask)的高度,开始觉得用mask._height就行了,但测试时发现mask._height值为210,而在Properties面板上看到的mask的值却是177,不知道是出了什么错-_-!这段代码只是对滚动条的初化以及一些参数的设置和获取。选中as层的第二帧,按F9打开Actions面板,输入如下代码: /滚动条实现if (lock = no and _xmouse(scrolling._x-scrolling._width) and _xmo

19、use=txt.ymin and txt._ytxt.y1 and distance0) or (txt._y/*如果txt在y方向的位置没超过指定范围(ymin to y1)或者1.txt在y方向的位置小于ymin(过上),但鼠标是向下移动2.txt在y方向的位置大于y1(过下),但鼠标是向上移动则执行下面的程序*/scrolling._y = distance;txt._y -= distance*(txt._height-maskheight)/(maskheight-scrolling._height); 说 明:这段代码是滚动条效果的核心部分。要理解这段代码,我们必须先清楚Flash

20、内的座标,如下图所示:与我们平时用的迪卡尔坐标不同的是,FLASH内的座标,在纵方向(y方向)越向上值越小,越向上值越大。然后,因为我们是通过拖动scrolling,来控制txt的上下“滚动”的,所以现在我们来了解一下scrolling和txt在主场景中的移动范围,从而了解scrolling移动的值与txt移动的值之间的控制比例,如下图所示:从上图可知:scrolling的移动范围为mask的高度减去scrolling的高度,即(maskheight-scrolling._height);txt的移动范围为txt的高度减去mask的高度,即(txt._height-maskheight);*其

21、中,maskheight为我们在第一帧已经定义也的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面板,输入

22、如下代码: gotoAndPlay(2); 说 明:通过第二帧和第三帧的反复循环播放,不断判断鼠标是否按下、鼠标的位置,从而实现滚动条的效果。第三步:书签效果选中as层的第一帧,按F9打开Actions面板,在原来的代码的后面输入如下代码: /txt下的各title在txt中的位置:position = new Array();for (i=1; i=8; i ) positioni = eval(txt.title i)._y-eval(txt.title i)._height/2;n = position1 txt.y1;/当txt.title1位于最上方时,txt.title1在主场景中

23、的位置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-positionnum 3;scrolling._y -= (txt._y-this.y1)*(maskheight-scrolling._height)/(txt._height-maskheight);/滚动位置的变化this.gotoAndStop(1);eval(

24、titlename).onRollOver = function() this.gotoAndPlay(2);eval(titlename).onRollOut = function() this.gotoAndStop(1);delete i;delete titlename; 分别获取txt中的title1title8“在txt中的”位置。在这里要说明一点:我们平时通过mc._y来获取的mc在y方向的位置,不论这段代码放在哪里,其值都是该mc的原点(即mc的x=0,y=0处)在其上一级mc中(_parent)y方向的位置,而不是在主场景(_root)中的位置,当然,如果mc直接放在主场景中

25、则为主场景中的位置。例如有这样一种结构:如上图所示,主场景中有mc2,mc2中有mc1,mc1中有mc,如果设一变量_root.mcy来存放mc的y方向位置,无论是在主场景中还是在mc2或mc1中,_root.mcy的值都是mc的原点在mc1中的位置,如果要获得mc在mc2中的位置,只要换成mc1.mc._y-mc1._y就行了。我们这里设一个数组来存放txt中的title1title8“在txt中的”位置,之所以要减去eval(txt.title i)._height/2即该title的高度的一半,是因为我们这里要得到的是title的顶部的位置。获取当txt.title1在场景的最上方时,t

26、xt在主场景中的y方向位置n。实现书签效果。通过txt.title1txt.title8在txt的位置之间的差值和它们与txt.title1在主场景中的位置(n)可以分别换算出txt.title1txt.title8在场景的最上方时txt在主场景中的y方向位置。 通过scrolling与txt的控制比例,反过来用txt的移动来控制scrolling位置变动,些时,控制比例变为(maskheight-scrolling._height)/(txt._height-maskheight)flash制作滚动条问题如何让滚动条中间的按纽只能上下移动(或左右),且是在某段距离之间:用自己画出的图形做滚动

27、条,这样的话就可以用在这个按钮上写代码on (press) startDrag (按钮名, false, 左坐标, 上坐标, 右坐标, 下坐标);/就是当按下按钮时,在这个规定的范围内拖动按钮on (release) stop();/在范围内释放按钮时,停止拖动on (releaseOutside) stop();/在范围外释放按钮时,停止拖动不要用自己画的滚动条,用组件自带的,只要写好参数,属性就成了!flash组件设置滚动条 2010-10-04 23:07:11| 分类: Flash教程 | 标签: |字号大中小 订阅 1.新建一个场景,设置场景的尺寸为550*400,其余默认,保存影片

28、.2.在场景里导入位图,按F8键将其转换为影片剪辑,名称为tu_MC.注册点选择左上角.单击高级按钮,弹出此对话框的高级部分,单击为动作脚本导出和在第一帧导出复选框,在标识符右边的文本框中输入tu,标识符尽量不要和元件名称相同,以避免出现混淆.单击确定按钮.此主题相关图片如下:4.删除图层1第1帧的tu_MC实例,选中此帧,单击窗口/开发面板/组件命令(Crtl+F7),打开组件面板,找到其中的ScrollPane组件,将其拖动到舞台中. 此主题相关图片如下:5.在场景中单击此组件,使用属性面板将实例设置为500*350象素,属性面板右边出现了参数选项,这是组件所特有的选项.双击Content

29、Path选项右边的区域,将其值设为tu,ScrollDrag右边的区域,在弹出的菜单中选择false此主题相关图片如下:6.按Ctrl+Enter组合键测试影片,当浏览到此图片时,会出现滚动条,拖动滚动条或者单击滚动条两边的箭头可以滚动图片.备注:(“ScrollPane”组件简析: 如果某些内容对于它们要加载到其中的区域而言过大,您可以使用滚动窗格来显示这些内容。例如,如果您有一幅大图像,而在应用程序中只有很小的空间来显示它,则可以将其加载到滚动窗格中。 contentPath 指明要加载到滚动窗格中的内容。该值可以是本地 SWF 或 JPEG 文件的相对路径,或 Internet 上的文件

30、的相对或绝对路径。它也可以是设置为“为动作脚本导出”的库中的影片剪辑元件的链接标识符。 hLineScrollSize 指明每次按下箭头按钮时水平滚动条移动多少个单位。默认值为 5。 hPageScrollSize 指明每次按下轨道时水平滚动条移动多少个单位。默认值为 20。 hScrollPolicy 显示水平滚动条。该值可以为“on”、“off”或“auto”。默认值为“auto”。 scrollDrag 是一个布尔值,它允许 (true) 或不允许 (false) 用户在滚动窗格中滚动内容。默认值为 false。 vLineScrollSize 指明每次按下箭头按钮时垂直滚动条移动多少个

31、单位。默认值为 5。 vPageScrollSize 指明每次按下轨道时垂直滚动条移动多少个单位。默认值为 20。 vScrollPolicy 显示垂直滚动条。该值可以为“on”、“off”或“auto”。默认值为“auto”。)flash组件横向滚动条在flash组件中,比如list datagrid yahoo的tree等,纵向滚动条默认都会在超过组件高度后自动的出现。 但是横向滚动条则不是,它似乎是不会去计算cellRenderer的长度,所以当list和tree这样的组件就算每一项的文字过长,显示不完,它们的横向滚动条也是无法使用。所以想请教一下,如何才能使用到它们的横向滚动条来显示过

32、宽的项呢? 用ScrollBarDirectionitem.direction = ScrollBarDirection.HORIZONTAL;/水平滚动条item.direction = ScrollBarDirection.VERTICAL;/垂直滚动条FLASH实现滚动条+网页书签效果第一步:场景中的元素因为这一步主要是在场景中加入文字和图片,大家可以下载源文件后用FLASH打开自己研究,这里就不详细介绍各元素第一步:场景中的元素因为这一步主要是在场景中加入文字和图片,大家可以下载源文件后用FLASH打开自己研究,这里就不详细介绍各元素的画法了。FLA源文件关于场景中的元素,这里要说清楚

33、的是各个MovieClip(影片剪辑,以下简称mc)的命名,如下图所示(注:这里说的命名,是指把mc放到场景中后在Properties属性面板中的命名,而不是在Library库中的命名,见图中红色线条框出的部分):说 明:对应于Timeline(时间线)上的各层:mask层:只有一个mc,名为mask;scrolling层:名为scrolling;txt层:mc名为txt。txt内,八个mc,从上至下分别命名为title1title8;menu层:从上至下分别命名为title1title8;第二步:滚动条选中as层的第一帧,按F9打开Actions面板,输入如下代码:/滚动条初始化开始:scr

34、olling.onPress = function() this.gotoAndStop(dark);/滚动条变暗lock = no;scrolling.onRelease = function() this.gotoAndStop(light);/滚动条变亮lock = yes;maskheight=177;/mask的高度/滚动条初始化结束txt.ymin = txt._y;/txt在y方向的初始值(最小值)txt.y1 = txt.ymin+txt._height-maskheight;/txt在y方向最多可以到达的地方(最大值)说 明:设一变量lock,记录鼠标是否在滚动条(scrol

35、ling)上按下,按下时,lock值为no,反之则为yes;maskheight为文字蒙板(mask)的高度,开始觉得用mask._height就行了,但测试时发现mask._height值为210,而在Properties面板上看到的mask的值却是177,不知道是出了什么错-_-!这段代码只是对滚动条的初化以及一些参数的设置和获取。选中as层的第二帧,按F9打开Actions面板,输入如下代码:/滚动条实现if (lock = no and _xmouse(scrolling._x-scrolling._width) and _xmouse(scrolling._x+2*scrolling

36、._width) /lock为no,并且鼠标在x方向的位置不至于太偏distance = _ymouse-scrolling._y;/鼠标在y方向的移动距离,即滚动条在y方向的移动距离if (txt._y=txt.ymin and txt._y=txt.y1) or (txt._ytxt.y1 and distance0) or (txt._ytxt.ymin and distance0) /*如果txt在y方向的位置没超过指定范围(ymin to y1)或者1.txt在y方向的位置小于ymin(过上),但鼠标是向下移动2.txt在y方向的位置大于y1(过下),但鼠标是向上移动则执行下面的程序

37、*/scrolling._y += distance;txt._y -= distance*(txt._height-maskheight)/(maskheight-scrolling._height);说 明:这段代码是滚动条效果的核心部分。要理解这段代码,我们必须先清楚FLASH内的座标,如下图所示:与我们平时用的迪卡尔坐标不同的是,FLASH内的座标,在纵方向(y方向)越向上值越小,越向上值越大。然后,因为我们是通过拖动scrolling,来控制txt的上下“滚动”的,所以现在我们来了解一下scrolling和txt在主场景中的移动范围,从而了解scrolling移动的值与txt移动的值

38、之间的控制比例,如下图所示:从上图可知:scrolling的移动范围为mask的高度减去scrolling的高度,即(maskheight-scrolling._height);txt的移动范围为txt的高度减去mask的高度,即(txt._height-maskheight);*其中,maskheight为我们在第一帧已经定义也的mask的高度从而,scrolling移动的值与txt移动的值之间的控制比例为:-(maskheight-scrolling._height)/(txt._height-maskheight),这里之所以有一个负号-,是因为当scrolling与txt的移动方向是相

39、反的。设scrolling移动的值为distance,则有txt移动的值为-distance*(txt._height-maskheight)/(maskheight-scrolling._height)(如上面代码的倒数第3行)选中as层的第三帧,按F9打开Actions面板,输入如下代码:gotoAndPlay(2);说 明:通过第二帧和第三帧的反复循环播放,不断判断鼠标是否按下、鼠标的位置,从而实现滚动条的效果。第三步:书签效果选中as层的第一帧,按F9打开Actions面板,在原来的代码的后面输入如下代码:/txt下的各title在txt中的位置:position = new Arra

40、y();positioni = eval(txt.title+i)._y-eval(txt.title+i)._height/2;n = position+txt.y1;/当txt.title1位于最上方时,txt.title1在主场景中的位置delete i;/书签部分:titlename = title+i;eval(titlename).onPress = function() this.y1 = txt._y;num = Number(substring(this._name, 6, -1);txt._y = n-positionnum+3;scrolling._y -= (txt._

41、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中的title1title8“在txt中的”位置。在这里要说明一点:flash 滚动条制作 flash滚动

42、条在各种开发中经常使用,有必要总结一下,究其核心要用到2个公式:1、关于滚动条的滚动滑块长度的计算这个难点,到底怎么计算?理论上说,滚动内容的高/长滚动条区域高/长时,需要显示滚动条,并且要根据滚动内容的长度来计算滚动条滑块的长度,滚动内容越长,滚动条滑块越短(这其实不是必须的,你可以固定滚动条滑块的长度,但是这样就不生动,不人性化)。但是到底是个什么公式,如果用线性公式:滚动条滑块长度=(滚动区域长度/内容总长度)滚动区域长度 总觉得不太好。可以假设几种情况思考一下就知道了。在网上查了也没有查到具体的公式,看到寂寞火山用的一个公式觉得还比较合理,如下:滚动滑块长度=(滚动条长度/内容总长度)

43、的1/3次方)可滚动区域长度 这是1.2、滚动内容的位置随滚动滑块的位置改变而改变滚动滑块的滚动百分比=滚动滑块的当前位置/可以滚动的区域高度内容的位置=内容初始顶部坐标-内容的可滚动区域高度滚动滑块的滚动百分比。flash滚动条代码 1,滑块,实例名move_bar;2,一个遮罩元件,用来控制显示内容区域的大小,实例名mask;3,动态文本实例名为txt。 下面是代码,写在帧上就行了。 /首先定义滑块的移动范围 barUp = 67; barDown = 204; barPos = 446; /然后是缓冲的程度,速度值越大缓冲1,滑块,实例名move_bar;2,一个遮罩元件,用来控制显示内

44、容区域的大小,实例名mask;3,动态文本实例名为txt。 下面是代码,写在帧上就行了。/首先定义滑块的移动范围 barUp = 67; barDown = 204; barPos = 446; /然后是缓冲的程度,速度值越大缓冲越明显 speed = 6; /然后这个是计算比例,也就是滑槽和内容的可移动长度之比 prop = (txt._height-mask._height)/(barDown-barUp); /记录下内容的最初位置 txtOrigin = txt._y; /在滑块上按下的时候开始拖动,down用来判断是否处在拖动中 move_bar.onPress = function(

45、) move_bar.startDrag(0, barPos, barUp, barPos, barDown); down = 1; ; /鼠标松开的时候停止拖动,down变为0 move_bar.onMouseUp = function() move_bar.stopDrag(); down = 0; ; /这个是关键,enterFrame加上if(down),也就是在拖动的时候不停地执行if里面的程序 this.onEnterFrame = function() if (down) /将此时滑块的y值减去滑块上限,计算出滑块向下移动的距离,乘以之前算出的比例,就得到了文本内容应该向上移动的

46、距离 txtMove = (move_bar._y-barUp)*prop; /原来的位置减去距离,得到文本内容现在应该在的位置,也就是目标位置 txt.m_y = txtOrigin-txtMove; /文本内容y值的每一次变化量=(目标位置-当前位置)除以缓冲速度。注意这一句不能放在if循环里面,否则鼠标一松开缓冲就停止了 txt._y += (txt.m_y-txt._y)/speed; ; 查看效果:OK, 测试一下,别忘记把帧数设高一点(我用的是48),这样看上去效果流畅。代码考虑了易用性,使用在其他地方的时候,只需要改一下滑块的范围,设好各个元件的实例名就可以了FLASHMX200

47、4制作缓冲滚动条效果建立对象 填写ASAS详解第1帧:show_scroll.onPress=function() /滚动条被按下 锁被打开 show_scroll.onRelease=function()/滚动条被放松 锁被关闭 show_scrollbg.onPress=function() /滚动条空白区域被点击 锁被打开show_scrollbg.onMouseUp=function()/鼠标提升 锁被关闭/这里是有原因的 当你鼠标按下 放开的时候不是在滚动条背景 scrollbg的时候/ 锁就永远不会关闭,整个图片将一直随着鼠标缓缓飘逸于你的显示器上 第2帧:if (scroll_l

48、ock=no) show_scroll._y+=(_ymouse-show_scroll._y-15)/2show_image._y+=(-(show_image._height-300)*(show_scroll._y*300/270)/300-show_image._y)/20 详细解释: show_scroll._y+=(_ymouse-show_scroll._y-15)/2:其中的“15”代表滚动条长度的一半,“2”代表滚动条缓冲常数,注意:这个常数不要设置太大,以免鼠标下来了,滚动条还在上面。 show_image._y+=(-(show_image._height-300)*(s

49、how_scroll._y/270)-show_image._y)/20:show_image._y+=(-(show_image._height-滚动显示区域的高度)*(show_scroll._y/滚动显示区域的高度-滚动条高度)-show_image._y)/被滚动影片缓冲常数,这里不要设置太大 以免 鼠标下来了 滚动条还在上面 下面先讲按住滚动条滚动。当没上锁的时候,也就是滚动条scroll或者背景scrollbg被按下的时候,show_scroll._y也就是滚动条的垂直位置,缓冲移动到鼠标当前位置的上15个象素,然后被滚动影片以缓冲移动到一个指定位置。 主要的地方来了: show_

50、image._height-300 意思就是 _ymouse-show_scroll._y-滚动条长度的一半,show_image被移动的最大范围。然后下面就是要让 show_image滚动到的位置所占总滚动位置的比例,和滚动条移动到的y占总移动范围的比例一样。所以有了 show_image+=(极限位置-show_image._y)/20这个是缓冲的算法,向极限每次循环以当前距离的1/20靠近。 极限位置 =-(show_image._height-300)*(show_scroll._y/270),(show_scroll._y/270)是滚动条的 _y 占滚动范围的比例 然后用 show

51、_image._height-300 乘 (show_scroll._y/270) 就得到 show_image,占总滚动比例与滚动条占滚动总范围的比例一样。_y的值前面加-号是要达到滚动条向下,被滚动mc向上的效果。然后当你点击滚动条,可移动范围空白区域的时候,锁打开,得到鼠标当前位置,滚动条马上缓冲移动到这个位置,然后,相当于拖动滚动条移动一样,向下执行步骤。找到了FLASH的滚动条制作原文 Flash可以上下滚动的文本框 1、创建场景文件。 2、输入或者粘贴一段文字。调整好大小。 3、将文本框转换为影片剪辑,在影片剪辑的属性面板中,为实例取名txtBox。 4、在靠近文本框右上角处画一个

52、三角形。 5、将三角形转换为按钮。双击进入按钮的编辑界面。 6、在反应区插入帧。 7、返回场景1。选择三角形按钮,打开动作面板。 8、输入如下代码: on (release) if (txtBox._y-340) /-340的意思是顶部y值减去高度Height的结果, /保证文本框向上移动到刚好看不见。 txtBox._y = txtBox._y-10; else txtBox._y=txtBox._y; 9、选择三角形按钮,复制,粘贴,选择新按钮,执行 修改-转换-垂直翻转 命令,使之变成向下按钮。将向下按钮移动到文本框右下角。10、选择向下按钮,打开动作面板,修改代码如下: on (rel

53、ease) if (txtBox._y385) txtBox._y = txtBox._y+10; else txtBox._y=txtBox._y; 11、新建图层2,在图层2第一帧画一个矩形,刚好掩盖住文本框和两个按钮。12、在图层2上点右键,遮蔽,将图层2创建为蒙板层。 13、Ctrl+Enter,并点击两个按钮查看效果。 Flash带滚动条的文本框(三) 1、新建场景文件,创建三个图层。 2、在最下面的图层1粘贴比较长的一段文字,然后在属性面板将其改为动态文字,多行,实例取名为txt。3、在图层2画一个矩形,遮住一段文字。将举行转换为影片剪辑,在属性面板中为实例取名为mask。 4、在

54、图层3的文字右侧画一条和mask等高的线段,转换为图形元件。在图层3上点右键,遮蔽,将图层3创建为蒙板层。5、在图层3的文字右侧画一个小矩形,转换为影片剪辑,在属性面板中为实例命名为scroll_bar,将scroll_bar放在 线段顶部。 6、在图层3选择第一帧,打开动作面板,输入如下代码: /首先定义滑块的移动范围 barUp = 67; barDown = 204; barPos = 446; /然后是缓冲的程度,速度值越大缓冲越明显 speed = 6; /然后这个是计算比例,也就是滑槽和内容的可移动长度之比 rate = (txt._height-mask._height)/(ba

55、rDown-barUp); /记录下内容的最初位置 txtOrigin = txt._y; /在滑块上按下的时候开始拖动,down用来判断是否处在拖动中 scroll_bar.onPress = function() scroll_bar.startDrag(0, barPos, barUp, barPos, barDown); down = 1; ; /鼠标松开的时候停止拖动,down变为0 scroll_bar.onMouseUp = function() scroll_bar.stopDrag(); down = 0; ; /这个是关键,enterFrame加上if(down),也就是在

56、拖动的时候不停地执行if里面的程序 this.onEnterFrame = function() if (down) /将此时滑块的y值减去滑块上限,计算出滑块向下移动的距离, /乘以之前算出的比例,就得到了文本内容应该向上移动的距离 txtMove = (scroll_bar._y-barUp)*rate; /原来的位置减去距离,得到文本内容现在应该在的位置,也就是目标位置 txt.m_y = txtOrigin-txtMove; /文本内容y值的每一次变化量=(目标位置-当前位置)除以缓冲速度。 /注意这一句不能放在if循环里面,否则鼠标一松开缓冲就停止了 txt._y += (txt.m

57、_y-txt._y)/speed; ; 7、Ctrl+Enter测试。 Flash带滚动条的文本框 1、打开昨天的作品可以上下滚动的文本框。 2、在图层1绘制一个小矩形,转换为电影剪辑元件,在属性面板上为实例命名为myScrollBar。 3、选择myScrollBar元件,打开动作面板,输入如下代码: on (press) startDrag (myScrollBar, true, 523, 85, 523, 325); down=true; /down 变量是用来控制文本框滚动的, /拖动是允许滚动。 on (release) stopDrag(); down=false; /停止拖动后也

58、就停止滚动。 4、在时间轴最顶上添加一个图层,选择第一帧,打开动作面板,输入如下代码: function onEnterFrame() if (down) v_Shift = (getProperty(myScrollBar,_y) - 200)*3; setProperty(text_movie, _y, v_Shift); /如果这里不用if判断,文本框就会不停的滚动下去。 5、Ctrl+Enter观看效果。一个代码比较少的滚动条demoflex有自带的滚动条组件,可是有的程序框架跟flex相冲突,只能用纯AS3来写。因为项目有做滚动条的需要,而我以前又没试过用纯as写滚动条,所以今天试着

59、写一下,看来还是不难的。做了个小demo,希望可以给没做过的一点思路,希望做过这个组件的不吝给予指教。思路是这样的:1. 我把素材做成swc直接加入到编译路径(实际应用一般做成swf)。2. 将滚动条mc导出的类addchild到舞台。滚动条mc分为两部分,不动的槽和会滚动的按钮。3. 用getChildByName的方式把滚动按钮对应到程序里的movieClip变量,变量名为btn。4. btn侦听mouseDown事件,按下的时候舞台开始侦听mouseMove和mouseUp事件。然后在mouseMove的事件响应里让btn的y值跟随鼠标的移动而改变,需要判断的是鼠标移动到滚动条最高最低点以外的地方时的情况。5. 在btn移动的同时,可以发出事件,或者调用回调函数,来让列表的位置做出改变。6. 在这个demo里,btn移动的时候会产生一个描述btn位置的百分比的值,用这个值让列表移动到对应的位置。补充一点就是滚动按钮的大小可以通过设置btn的height来改变,不过对应的mc就要设置9-grid了。附件是flex builder导出的zip,项目是as工程

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!