- 浏览: 1090927 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
《元件滚动条》
/* ================================================================================ 《元件滚动条》 更改了对文本滚动控制改为对元件的控制,并增加缓动效果。 代码借鉴了:火山动态文本滚动条 V5 ,特此注明! ------------------------------------------------------------ Copyright (c) 2011 [无空] My web: 闪耀空间 http://www.flash-me.cn/ E-mail: flashme@live.cn 2011-3-4 ================================================================================ */ package { import flash.events.MouseEvent; import flash.events.Event; import flash.display.SimpleButton; import flash.text.TextField; import flash.display.Sprite; //import flash.display.MovieClip; import flash.utils.getTimer; import flash.geom.Rectangle; public class myScrollBar extends Sprite { //=============本类属性============== ////接口元件 private var scrollCon:Sprite; private var scrollBar_sprite:Sprite; private var up_btn:SimpleButton; private var down_btn:SimpleButton; private var pole_sprite:Sprite; private var bg_sprite:Sprite; ////初始数据 private var poleStartHeight:Number; private var poleStartY:Number; private var totalPixels:Number; private var areaY:int; private var areaBg:uint; private var easingSpeed:uint=7; ////上下滚动按钮按钮下时间 private var putTime:Number; /** * @param scrollCon_fc:被滚动的元件 * @param scrollBarMc_fc:舞台上与本类所代理的滚动条元件 * @param height_fc:滚动条高 * @param width_fc:滚动条宽 */ public function myScrollBar(scrollCon_fc:Sprite, scrollBarMc_fc:Sprite, area_fc:uint=0, height_fc:uint=0, width_fc:uint=0) { //——————滚动条_sprite,滚动条按钮和滑块mc,被滚动的文本域初始化 scrollCon=scrollCon_fc; scrollBar_sprite=scrollBarMc_fc; up_btn=SimpleButton(scrollBar_sprite.getChildByName("up_btn")); down_btn=SimpleButton(scrollBar_sprite.getChildByName("down_btn")); pole_sprite=Sprite(scrollBar_sprite.getChildByName("pole_mc")); bg_sprite=Sprite(scrollBar_sprite.getChildByName("bg_mc")); //——————可用性控制 pole_sprite.visible=false; up_btn.enabled=false; down_btn.enabled=false; //——————其他属性初始化 areaY = scrollCon.y; if(area_fc==0){ //未接收到高度定义时默认让其上下距离相等 area_fc=scrollCon.parent.stage.stageHeight-areaY*2; } areaBg = area_fc; bg_sprite.useHandCursor=false; //遮罩 var maskSprite:Sprite=new Sprite(); maskSprite.graphics.beginFill(0xff0000); maskSprite.graphics.drawRect(scrollCon.x,areaY,scrollCon.width,areaBg); maskSprite.graphics.endFill(); //遮罩无需放入显示列表 //***若需要控制遮罩位置等相关属性可将下面注释取消*** //maskSprite.name="maskSprite"; //scrollCon.parent.addChild(maskSprite); scrollCon.mask=maskSprite; if (height_fc==0) { bg_sprite.height=areaBg; } else { bg_sprite.height=height_fc; } if (width_fc!=0) { bg_sprite.width=width_fc+2; pole_sprite.width=width_fc; up_btn.width=up_btn.height=down_btn.width=down_btn.height=width_fc; } down_btn.y=bg_sprite.y+bg_sprite.height-down_btn.height; poleStartHeight=Math.floor(down_btn.y-up_btn.y-up_btn.height); poleStartY=pole_sprite.y=Math.floor(up_btn.y+up_btn.height); //——————注册侦听器 //用鼠标接触元件的方式来更新高度数据,用这种方式侦听或许不太好,但没找到更好办法。 scrollCon.addEventListener(MouseEvent.MOUSE_OVER, renew); scrollBar_sprite.addEventListener(MouseEvent.MOUSE_OVER, renew); //初始运行scrollBar_sprite侦听 scrollBar_sprite.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER)); //鼠标滚轮 scrollCon.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel); //上滚动按钮 up_btn.addEventListener(MouseEvent.MOUSE_DOWN, upBtn); up_btn.stage.addEventListener(MouseEvent.MOUSE_UP, upBtnUp); //下滚动按钮 down_btn.addEventListener(MouseEvent.MOUSE_DOWN, downBtn); down_btn.stage.addEventListener(MouseEvent.MOUSE_UP, downBtnUp); //滑块 pole_sprite.addEventListener(MouseEvent.MOUSE_DOWN, poleSprite); pole_sprite.stage.addEventListener(MouseEvent.MOUSE_UP, poleUp); //滑块背景点击 bg_sprite.addEventListener(MouseEvent.MOUSE_DOWN, bgDown); } private function renew(event : MouseEvent):void { //判断滑块儿是否显示,并根据元件高度定义滑块高度 if (scrollCon.height>areaBg) { pole_sprite.visible=true; up_btn.enabled=true; down_btn.enabled=true; //定义一个高度因子 var heightVar:Number=areaBg/scrollCon.height; //根据高度因子初始化滑块的高度 pole_sprite.height=Math.floor(poleStartHeight*Math.pow(heightVar,1/3)); //拖动条可响应的范围 totalPixels=Math.floor(down_btn.y-up_btn.y-up_btn.height-pole_sprite.height); pole_sprite.y=PoleNewY(scrollCon.y); } else { pole_sprite.visible=false; up_btn.enabled=false; down_btn.enabled=false; } } /** * 计算公式 */ //以拖动条的位置计算来MC的位置,返回int值 private function ConNewY(nowPosition:int):int { return -(scrollCon.height-areaBg)*(nowPosition-poleStartY)/totalPixels +areaY; } //以MC的位置来计算拖动条的位置,返回int值 private function PoleNewY(nowPosition:int):int { return totalPixels*(areaY-nowPosition)/(scrollCon.height-areaBg) +poleStartY; } /** * 滑块滚动 */ private function poleSprite(event : MouseEvent):void { //监听舞台,这样可以保证拖动滑竿的时候,鼠标在舞台的任意位置松手,都会停止拖动 scrollBar_sprite.stage.addEventListener(MouseEvent.MOUSE_UP, poleUp); //限定拖动范围 var dragRect:Rectangle=new Rectangle(pole_sprite.x,poleStartY,0,totalPixels); pole_sprite.startDrag(false, dragRect); scrollBar_sprite.addEventListener(Event.ENTER_FRAME, poleDown); } private function poleDown(event : Event):void { //在滚动过程中及时获得滑块所处位置 var nowPosition:int=pole_sprite.y; //新位置 var newY:int=ConNewY(nowPosition); //缓动效果,scrollCon.y的位置: scrollCon.y += ((计算出的新位置)-scrollCon.y)/缓动值 scrollCon.y += (newY - scrollCon.y)/easingSpeed; } private function poleUp(event : MouseEvent):void { var nowPosition:int=pole_sprite.y; //弹起在次计算的原因是当鼠标弹起时移除了poleDown函数里的缓动效果,导致scrollCon没有到达计算位置。 scrollCon.y=ConNewY(nowPosition); pole_sprite.stopDrag(); scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, poleDown); scrollBar_sprite.stage.removeEventListener(MouseEvent.MOUSE_UP, poleUp); //scrollCon.addEventListener(Event.SCROLL, textScroll); } /** * 滑块背景点击 */ private function bgDown(event : MouseEvent):void { var nowPosition:int; if ((scrollBar_sprite.mouseY-up_btn.y-up_btn.height) < (pole_sprite.height / 2)) { nowPosition=Math.floor(up_btn.y+up_btn.height); } else if ((down_btn.y - scrollBar_sprite.mouseY) < pole_sprite.height / 2) { nowPosition=Math.floor(down_btn.y-pole_sprite.height); } else { nowPosition=scrollBar_sprite.mouseY-pole_sprite.height/2; } pole_sprite.y=nowPosition; scrollCon.y=ConNewY(nowPosition); } /** * 下滚动按钮 */ private function downBtn(event : MouseEvent):void { if (scrollCon.y>(areaY+areaBg-scrollCon.height)) { scrollCon.y-=10; var nowPosition:int=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } //当鼠标在按钮上按下的时间大于设定时间时,连续滚动 putTime=getTimer(); scrollBar_sprite.addEventListener(Event.ENTER_FRAME, downBtnDown); } private function downBtnDown(event : Event):void { if (getTimer()-putTime>500) { if (scrollCon.y>(areaY+areaBg-scrollCon.height)) { scrollCon.y-=1; var nowPosition:int=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } } } private function downBtnUp(event : MouseEvent):void { scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, downBtnDown); } /** * 上滚动按钮 */ private function upBtn(event : MouseEvent):void { if (scrollCon.y<areaY) { scrollCon.y+=10; var nowPosition:int=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } //当鼠标在按钮上按下的时间大于设定时间时,连续滚动 putTime=getTimer(); scrollBar_sprite.addEventListener(Event.ENTER_FRAME, upBtnDown); } private function upBtnDown(event : Event):void { if (getTimer()-putTime>500) { if (scrollCon.y<areaY) { scrollCon.y+=1; var nowPosition:int=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } } } private function upBtnUp(event : MouseEvent):void { scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, upBtnDown); } /** * 鼠标滚轮事件 */ private function mouseWheel(event : MouseEvent):void { var nowPosition:int; if (event.delta<0) { if (scrollCon.y>(areaY+areaBg-scrollCon.height)) { scrollCon.y+=Math.floor(event.delta*3); nowPosition=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } } else if (event.delta>0) { if (scrollCon.y<areaY) { scrollCon.y+=Math.floor(event.delta*3); nowPosition=scrollCon.y; pole_sprite.y=PoleNewY(nowPosition); } } } } }
- 元件滚动条_V1.rar (19.9 KB)
- 下载次数: 35
发表评论
-
greenSock新老库
2012-08-07 13:25 0老库-做项目的时候比新库完全不抖啊 -
Starling开发的游戏源码
2012-07-26 17:13 0Starling开发的游戏源码 -
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
[转] [Flash/Flex] 加载SWF性能VS影片剪辑性能
2012-03-15 22:29 0http://bbs.9ria.com/viewthread. ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2467实现这效果其实比较简单,主要是思路~! package ... -
greensock-as3
2012-02-23 21:26 0greensock-as3 -
禁止输入文本可以粘贴
2012-02-10 13:15 2330//禁止输入文本粘贴动作 private static ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
Flash_Rich_Text_Editor(完美的富文本编辑器)
2011-12-27 17:55 0Flash_Rich_Text_Editor(完美的富文 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
[转]三次贝尔曲线
2011-11-10 01:09 1939http://bbs.9ria.com/viewt ... -
[心得] 完美解决as3在ie中初始化时stageWidth和stageHeight为0的问题
2011-11-03 00:46 2953先看下面的一段脚本,这是比较经典的初始化脚本: pa ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解 -
[转]服务器端ActionScript语言参考
2011-10-31 00:29 0服务器端ActionScript语言参考 -
Flash Player和Adobe AIR内部的垃圾回收机制
2011-10-29 22:37 0资讯类型: 翻译 来源页面: http://www.ad ...
相关推荐
AS3滚动条是ActionScript 3.0编程语言中实现的一种用户界面元素,它主要用于在内容超出可视区域时提供导航。在AS3中,滚动条是通过Flash的UI组件库来创建和控制的,允许用户在长或宽的数据显示区域中进行上下或左右...
这个元件滚动条我用了将近两年了,2011年初我还在天地会论坛里发布过我的最初版本。在这两年时间里很多项目里都应用过,可以说是我经过了两年左右的不停完善,为了最大化的重复利用性,做了很多次大小改动。从最初...
在使用Siemens WinCC 7.4 SP1的过程中,用户可能会遇到滚动条和全局库不显示的问题,这会给项目的正常运行带来困扰。本篇将详细解释这个问题的原因,并提供相应的解决步骤。 首先,让我们理解问题的根源。WinCC是一...
Axure表格中加入滚动条。表格的列很多,而页面宽度有限,但仍需将所有内容展示在表格内,考虑在表格中加入滚动条,教程可参考https://blog.csdn.net/super_DuoLa/article/details/126158919?spm=1001.2014.3001.5501...
在Flash编程领域,动态文本和滚动条的结合是常见的需求,尤其在展示大量文本内容时。这个"flash滚动条动态文本-源码"提供了一个经过调试且可直接使用的实例,适用于那些希望在Flash项目中集成类似功能的开发者。 ...
本知识点将深入探讨如何在Axure RP 8中实现带滚动条和筛选功能的圆角文本框,以及如何利用元件库来提高工作效率。 首先,让我们理解什么是"下拉列表框"。在UI设计中,下拉列表框是一种常用的输入控件,它允许用户从...
由于带滚动条的动态文本框无法竖着显示文字,于是通过把文本框转换成元件,遮罩层盖在内容层上,实现拉滚动条,元件左右移动,在遮罩层的帮助下,实现竖排文字左右移动的效果,然后通过代码加入移动的缓冲效果,注意...
源码可能展示了如何使用图形元件来创建滚动条的视觉元素,以及如何编写ActionScript来处理用户交互事件,如鼠标点击、拖动等。 3. **事件处理**:ActionScript中的事件监听器是实现滚动条功能的关键。例如,`...
Axure设计之左右滚动组件教程(动态面板)功能描述:1、点击“向左箭头”菜单导航向左移动,继续点击直到右侧显示全最后一个菜单时结束移动;2、点击“向右箭头”菜单导航向右移动,继续点击直到左侧显示全第一个...
它包含了一系列通用的交互元素,如滑块、滚动条、加载动画等,旨在满足各种设计需求。 WEB端组件3.0.rplib可能是另一个专注于Web界面设计的元件库,可能包含了最新的设计趋势和交互模式,方便设计师构建现代感十足...
滚动条随处可见 Google Chrome浏览器扩展程序,可以滚动页面,就像滚动条位于指针正下方一样。 只需按配置的鼠标按钮并移动鼠标即可。 如果要滚动样式,只需在选项中进行设置即可。 该扩展基于并受Firefox的...
元件库:包含导航、颜色、字体、边框、图标、按钮、文字链接、单选框、多选框、输入框、计数器、选择器、级联选择器、开关、滑块、时间选择器、日期选择器、日期时间选择器、上传、评分、颜色选择器、穿梭框、表单、...
元件库中的100多个部件库,涵盖了常见的界面组件,如按钮、表单、滑块、开关、菜单、滚动条、日期选择器等。这些部件库经过精心设计,可以快速拖放至工作区,调整属性后即可使用,极大地提升了设计效率。此外,部件...
这些元件可能包括按钮、表单元素、导航栏、滚动条、弹窗等,涵盖了软件界面设计的各个方面。使用这些扩展元件,设计师无需从零开始创建每个细节,节省了大量的时间和精力。 此外,元件库还包含了一系列常见图标元件...
元件库:包含导航、颜色、字体、边框、图标、按钮、文字链接、单选框、多选框、输入框、计数器、选择器、级联选择器、开关、滑块、时间选择器、日期选择器、日期时间选择器、上传、评分、颜色选择器、穿梭框、表单、...
5. **动态面板**:可用来创建可折叠内容、选项卡或模拟滚动效果,增加原型的动态感。 6. **表格和列表**:用于展示数据,可定制列宽、行高,甚至包含交互性。 7. **表单元素**:输入框、下拉列表、日期选择器等,...
元件库通常包含各种类型的UI元素,如按钮、表单控件、图标、导航条、页眉和页脚、滚动条、滑块等,这些都经过精心设计,可以直接拖放到设计画布上,极大地提高了设计效率。此外,元件库还可能包括一些特定行业的组件...
这种效果常见于滚动文本、滚动条或游戏中的滚动背景等场景。 描述中提到的“元件自由滚动功能”是指我们可以自定义任何类型的Flash元件(如影片剪辑或按钮)的行为,使其能够根据预设规则自动移动,营造出滚动的...
8. **动态面板**:可以用于实现滚动效果、选项卡切换等功能,是Axure RP中非常重要的一个特性。 9. **页面链接与变量**:通过链接设置,可以实现页面间的跳转;变量则可以存储和传递信息,为原型增加动态性。 10. ...