- 浏览: 1087345 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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组件源代码
以前非专职做flash,用到滚动条时都是直接网上下载使用,网上找的又五花八门,开始找到用上就要花不少时间了,最近换了工作,改专职做flash了,需要用到滚动条,就花了点时间根据自己的想法写了个。
主要功能:
1.支持影片剪辑和动态文本
2.自定义滚动条样式
第一次写,有许多不足,欢迎拍砖,要是发现有什么问题,或是有哪些不足,或有哪些地方可以优化的欢迎反馈,我会及时更改。缓动效果有时间会加上,暂时还不需要用到,就懒得去写了。
*********************************************
fla实例已上传~~至少需要CS4才能打开,因为俺是用CS5做的,所以只能保存到CS4
*********************************************
phhui_ScrollBar.as
========================================================
用法:
影片剪辑:
主要功能:
1.支持影片剪辑和动态文本
2.自定义滚动条样式
第一次写,有许多不足,欢迎拍砖,要是发现有什么问题,或是有哪些不足,或有哪些地方可以优化的欢迎反馈,我会及时更改。缓动效果有时间会加上,暂时还不需要用到,就懒得去写了。
*********************************************
fla实例已上传~~至少需要CS4才能打开,因为俺是用CS5做的,所以只能保存到CS4
*********************************************
phhui_ScrollBar.as
package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; public class phhui_ScrollBar extends MovieClip { public var _obj:*=this;//滚动对象 public var _type:int=0;//0:文本,1:非文本 public var _mask:*;//遮罩对象 public var _h:int=0;//滚动条高度 public var _scrollvnum:int=0;//文本显示行数 public var _v:int=5;//文本滚动速度(行/像素) public var _scroll:*;//自定义滚动条对象 private var _s:Number=0;//鼠标点击滑块时的纵坐标距滑块坐标距离 private var _bars:Number=0;//滑块可滑动距离 private var _bar:*;//滑块 private var _up:*;//向上按钮 private var _down:*;//向下按钮 private var _bg:*;//滑槽 private var listenMag:ListenManager=new ListenManager();//监听管理,这个只是简单的添加删除监听而已,没有记录或判断监听对象是否已存在,如有需要可以自己进行修改,这里只是因为懒得每个监听都要写addevent...所以用的 public function phhui_ScrollBar () { } public function init():void{//初始化 if(checkhide()==true){ _bar=_scroll.pq_bar; _bg=_scroll.pq_bg; _up=_scroll.pq_up; _down=_scroll.pq_down; setxy(); }else{ this.visible=false; if(_scroll!=null){ _scroll.visible=false; } } } public function update():void{//当被滚动对象更新时,而需要改变滚动条状态,调用此方法 if(checkhide()==false){ this.visible=false; if(_scroll!=null){ _scroll.visible=false; } } } private function checkhide():Boolean{//判断是否显示滚动条 if(_type==1&&_obj.height<=_mask.height){ return false; }else if(_type==0&&int(_obj.maxScrollV)<_scrollvnum){ return false; } return true; } private function setxy():void{//设置滚动条高度,对象遮罩等 _bar.y=_bg.y; _bar.x=_bg.x; _bg.height=_h>0?_h-_up.height*2:_bg.height; _down.y=_bg.y+_bg.height+_down.height; _bars=_bg.height-_bar.height; if(_type==1){ _obj.mask=_mask; } addlisten(); } private function addlisten():void{//为滚动条添加监听事件 listenMag.fcn_add(_bar,MouseEvent.MOUSE_DOWN,barclick); listenMag.fcn_add(_bar,MouseEvent.MOUSE_UP,barup); listenMag.fcn_add(stage,MouseEvent.MOUSE_UP,barup); listenMag.fcn_add(_bar,MouseEvent.MOUSE_UP,barup); listenMag.fcn_add(_up,MouseEvent.MOUSE_DOWN,upclick); listenMag.fcn_add(_down,MouseEvent.MOUSE_DOWN,downclick); listenMag.fcn_add(_scroll,MouseEvent.MOUSE_WHEEL,mousewheel); listenMag.fcn_add(_obj,MouseEvent.MOUSE_WHEEL,mousewheel); } private function barclick(e:MouseEvent):void{//鼠标点击滑块 _s=mouseY-_bar.y; listenMag.fcn_add(_bar,Event.ENTER_FRAME,barevent); } private function barup(e:MouseEvent):void{//鼠标点击滑块释放 delevent(); } private function upclick(e:MouseEvent):void{//鼠标点击向上按钮事件 if(checkbar()){ if(_type==0){ _bar.y-=_bars*_v/_obj.maxScrollV;//滑块移动的距离=文本滚动行数*滑块可移动的总距离/文本总行数 }else{ _bar.y-=_bars*_v/(_obj.height-_mask.height);//滑块移动的距离=滚动对象滚动的像素*滑块可移动的总距离/(被滚动对象的高度-遮罩的高度(即显示范围的高度)) } objrun(0-_v);//调用方法移动对象 delevent();//校正滑块位置并删除监听 } } private function downclick(e:MouseEvent):void{//鼠标点击向下按钮事件 if(checkbar()){ if(_type==0){ _bar.y+=_bars*_v/_obj.maxScrollV; }else{ _bar.y+=_bars*_v/(_obj.height-_mask.height); } objrun(_v); delevent(); } } private function mousewheel(e:MouseEvent):void{//鼠标滑轮事件 if(e.delta>0){ if(checkbar()){ _bar.y-=2; if(_type==0){ _obj.scrollV=(_bar.y-_bg.y)*_obj.maxScrollV/_bars; }else{ _obj.y=_mask.y-(_bar.y-_bg.y)*(_obj.height-_mask.height)/_bars; } }else{ delevent(); } }else{ if(checkbar()){ _bar.y+=2; if(_type==0){ _obj.scrollV=(_bar.y-_bg.y)*_obj.maxScrollV/_bars; }else{ _obj.y=_mask.y-(_bar.y-_bg.y)*(_obj.height-_mask.height)/_bars; } }else{ delevent(); } } } private function barevent(e:Event):void{ if(checkbar()){ _bar.y=mouseY-_s; if(_type==0){ _obj.scrollV=(_bar.y-_bg.y)*_obj.maxScrollV/_bars; }else{ _obj.y=_mask.y-(_bar.y-_bg.y)*(_obj.height-_mask.height)/_bars; } }else{ delevent(); } } public function objrun(i:Number):void{ if(_type==0){ _obj.scrollV+=i; }else{ _obj.y-=i; if(_obj.y>_mask.y){ _obj.y=_mask.y; }else if(_obj.y<(_mask.y-_obj.height+_mask.height)){ _obj.y=_mask.y-_obj.height+_mask.height; } } } public function checkbar():Boolean{ if(_bar.y>=_bg.y&&_bar.y<=(_bars+_bg.y)){ return true; } return false; } public function delevent():void{ if(_bar.y<_bg.y){ _bar.y=_bg.y; }else if(_bar.y>(_bg.y+_bg.height-_bar.height)){ _bar.y=_bg.y+_bg.height-_bar.height; } listenMag.fcn_del(_bar,Event.ENTER_FRAME,barevent); } } } --------------------------------------------------------------------------------- [b]ListenManager.as[/b] package ClassFile{ import flash.display.Sprite; public class ListenManager extends Sprite { public function ListenManager() { } public function fcn_add(obj:*,_type:String,fcn:Function):void { if(obj==stage){ addEventListener(_type,fcn); }else{ obj.addEventListener(_type,fcn); } } public function fcn_del(obj:*,_type:String,fcn:Function):void { obj.removeEventListener(_type,fcn); } } }
========================================================
用法:
影片剪辑:
var scr:phhui_ScrollBar=new phhui_ScrollBar(); scr._type=1; scr._obj=mc; scr._mask=mc_mask; scr._h=200; scr._v=50; scr._scroll=ss;//ss为自定义的滚动条MC实例名,里面对应的四个对象名要与类中的一样,即:滑块名为pq_bar,向上的按钮名为pq_up,向下的按钮为pq_down,滑槽名为pq_bg scr.init(); -------------------------- 动态文本: var scr:phhui_ScrollBar=new phhui_ScrollBar(); scr._type=0;//默认为0,可省略 scr._obj=txt;//txt动态文本实例名 scr._scrollvnum=10; scr._h=200; scr._v=5; scr._scroll=ss; scr.init();
- 滚动条.rar (13.8 KB)
- 下载次数: 74
发表评论
-
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2456实现这效果其实比较简单,主要是思路~! package ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
Embed绑定XML与txt文本文件
2011-12-28 15:54 4655使用Embed标签可以将图片绑定到swf中并显示,那么我 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
[转]三次贝尔曲线
2011-11-10 01:09 1930http://bbs.9ria.com/viewt ... -
[心得] 完美解决as3在ie中初始化时stageWidth和stageHeight为0的问题
2011-11-03 00:46 2943先看下面的一段脚本,这是比较经典的初始化脚本: pa ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解 -
[转]服务器端ActionScript语言参考
2011-10-31 00:29 0服务器端ActionScript语言参考 -
2个加载作用
2011-10-24 22:14 1873第一话:加载Base64 encoded string 通过 ... -
[转] 一种完全没有边缘痕迹的渐变AS做法
2011-10-23 00:21 1887http://bbs.9ria.com/viewthread. ... -
[心得] localToGlobal 和 globalToLocal 的理解
2011-10-20 03:10 0http://bbs.9ria.com/viewthread. ... -
翻译: Flash文本引擎, 第二部分: 交互
2011-10-20 02:34 0http://www.riadev.com/flex-thre ... -
翻译: Flash文本引擎, 第一部分: 概述
2011-10-20 02:33 0http://www.riadev.com/flex-thre ... -
珍宝探索 AS3-过关类小游戏
2011-10-13 02:15 0珍宝探索 AS3-过关类小游戏 -
设计模式(23种设计模式.AS3实现)
2011-10-13 02:04 0设计模式(23种设计模式.AS3实现) -
图片相册代码_photo_gallery
2011-10-12 11:17 0图片相册代码_photo_gallery
相关推荐
创建自定义错误类 响应错误事件和状态 比较错误类 处理错误示例:CustomErrors应用程序 第章:使用正则表达式 正则表达式基础知识 正则表达式语法 对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:...
1.Loading应该放在影片的什麽位置? A. 影片不能有Loading B. 中间 C. 后面 D. 前面 2.Flash中设置属性的命令是? A. Set Polity B. Polity C. Property D. Set Property 3.Flash action“while”意义是? ...
如`visible`(可见)、`hidden`(隐藏)、`scroll`(始终显示滚动条)、`auto`(自动显示滚动条)。 4. **剪辑区域**(`clip`):定义元素的可见区域,通常使用`rect()`函数来指定矩形区域。 以上就是根据提供的...
修改核心支持库,为外部数据库的连接类命令增加参数“不显示ODBC连接对话框”。 3. 修改核心支持库,解决用“播放音乐()”播放“音频采样大小为24位”的WAV文件时产生噪音的BUG。 4. 修改编译器,可以为编译出的...
(共分4个part,请下载完4个part后再解压) 目录 第1章iPhone SDK 简介......1 ...UIControl 类为许多iPhone 交互式元素提供了基础,包括按钮、文本字段、滑块和开关。第8章通过 已经或尚未用文档细致记录...
(共分4个part,请下载完4个part后再解压) 目录 第1章iPhone SDK 简介......1 ...UIControl 类为许多iPhone 交互式元素提供了基础,包括按钮、文本字段、滑块和开关。第8章通过 已经或尚未用文档细致记录...
(共分4个part,请下载完4个part后再解压) 目录 第1章iPhone SDK 简介......1 ...UIControl 类为许多iPhone 交互式元素提供了基础,包括按钮、文本字段、滑块和开关。第8章通过 已经或尚未用文档细致记录...
- **知识点**: 在Word等文档编辑软件中,水平滚动条用于实现文档页面的水平滚动,以便查看超出屏幕宽度的内容。此功能有助于用户更好地浏览和编辑长文档。 ### 7. 变量运算 - **知识点**: 表达式`i += i - 1`相当...
newWndProc就是窗口过程只要是该类的实例生成的窗口都使用该窗口过程。 所以了解了Windows的消息机制在加上对消息映射的理解就很容易了解MFC开发的基本思路了。 1.4 利用MFC进行开发的通用方法介绍 以下是我在最初...