- 浏览: 1451130 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
最近一直做会议与AS3有关项目
今天花了点时间写了一个可以选择套皮肤,或无皮肤AS3.0文本滚动条
不需要皮肤的话,代码会简单的话花一个皮肤
初学,不完美的地方自己可以自己修改。
这里说下套 皮肤方式。
比如我们做一个styleTextScrollBar的皮肤,建一个styleTextScrollBar的影片剪辑然后捆绑上md.UI.styleTextScrollBar,这个类不用写,系统会帮你自动生成,我们只是需要里面一些元件。
分别做四个元件,2个按钮2个影片剪辑
upBtn(SimpleButton);
bottonBtn(SimpleButton);
bgMc(MovieClip)
slipMc:MovieClip;(MovieClip)
然后看类的使用方法吧!
文本滚动条类:
/*
使用方法
//导入mdTextScrollBar组件类
import md.UI.mdTextScrollBar
//库中绑定的皮肤 这个类可以不用写,在库链接写上 md.UI.styleTextScrollBar就会自动生成
import md.UI.styleTextScrollBar
//创建组件
var mdScroll:mdTextScrollBar=new mdTextScrollBar(Text,styleTextScrollBar,300)
addChild(mdScroll)
//说明
//Text:需要绑定的TextField对象,必填
//styleTextScrollBar:需要绑定的皮肤(可选,默认AS3绘制皮肤)
//300:滚动条高度(可选,默认100)
*/
package md.UI{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.text.TextField;
import flash.events.*;
import flash.geom.Rectangle;
import flash.utils.getTimer;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
public class mdTextScrollBar extends Sprite {
var Text:TextField;
var upBtn:SimpleButton;
var bottonBtn:SimpleButton;
var bgMc:MovieClip;
var slipMc:MovieClip;
var ScrollBarMc:Sprite;
var ScrollBarHeight:Number;
var slipVar:Number;
var slipHeight:Number;
var putTime:uint;
//构造函数
public function mdTextScrollBar(mdText:TextField,...tag) {
Text=mdText;
if (tag.length>0) {
if (tag[0] is Class) {
//有皮肤模式
if (tag[1]==undefined) {
//无设定高度
styleModeInit(tag[0]);
} else {
//有设定高度
styleModeInit(tag[0],tag[1]);
}
} else if (tag[0] is Number) {
//无皮肤模式
//trace("无皮肤模式,但设置了高度"+tag[0]);
nudityModeInit(tag[0]);
} else {
trace("mdTextScrollBar使用非法参数,启动无皮肤模式");
//无皮肤模式
nudityModeInit();
}
} else {
//无皮肤模式
nudityModeInit();
}
}
//皮肤模式
private function styleModeInit(...tag) {
ScrollBarMc=new tag[0];
addChild(ScrollBarMc);
//初始化皮肤
upBtn=ScrollBarMc.getChildByName("upBtn") as SimpleButton;
bottonBtn=ScrollBarMc.getChildByName("bottonBtn") as SimpleButton;
bgMc=ScrollBarMc.getChildByName("bgMc") as MovieClip;
slipMc=ScrollBarMc.getChildByName("slipMc") as MovieClip;
if (tag[1]!=undefined) {
ScrollBarHeight=tag[1];
} else {
ScrollBarHeight=100;
}
upBtn.y=0;
upBtn.x=0;
bgMc.x=0;
bgMc.y=upBtn.height;
bgMc.height=ScrollBarHeight-upBtn.height-bottonBtn.height;
bottonBtn.x=0;
bottonBtn.y=upBtn.height+bgMc.height;
slipMc.x=0;
slipMc.y=upBtn.height;
slipHeight=bgMc.height-slipMc.height;
ScrollBarMc.visible=false
;
//这里mdScrollBar对象的stage还没被赋值
//trace(mdScrollBar.stage)
addEventListener(Event.ENTER_FRAME, addStageEvent);
}
//裸奔模式,我好心点画套皮肤给他吧
private function nudityModeInit(...tag) {
if (tag[0]!=undefined) {
ScrollBarHeight=tag[0];
} else {
ScrollBarHeight=100;
}
ScrollBarMc=new Sprite();
upBtn=new directionButton(15,1);
bottonBtn=new directionButton(15,2);
bottonBtn.y=ScrollBarHeight-bottonBtn.height
bgMc=new MovieClip()
bgMc.graphics.beginFill(0xcccccc)
bgMc.graphics.drawRect(0,0,15,ScrollBarHeight-upBtn.height-bottonBtn.height)
bgMc.y=upBtn.height
slipMc=new MovieClip()
slipMc.graphics.beginFill(0x999999,0)
slipMc.graphics.drawRect(0,0,15,30)
slipMc.graphics.beginFill(0xeeeeee)
slipMc.graphics.drawRoundRect((15-10)/2,0,10,30,5,5)
slipMc.y=upBtn.height
slipHeight=bgMc.height-slipMc.height;
addChild(ScrollBarMc);
ScrollBarMc.addChild(bgMc);
ScrollBarMc.addChild(upBtn);
ScrollBarMc.addChild(bottonBtn)
ScrollBarMc.addChild(slipMc);
ScrollBarMc.visible=false
addEventListener(Event.ENTER_FRAME, addStageEvent);
}
//加载进场景后初始化事件
private function addStageEvent(event:Event):void {
if (ScrollBarMc.stage!=null) {
//文本滚动与鼠标滚轮
Text.addEventListener(Event.SCROLL, textScroll);
//上滚动按钮
upBtn.addEventListener(MouseEvent.MOUSE_DOWN, upBtnDown);
//下滚动按钮
bottonBtn.addEventListener(MouseEvent.MOUSE_DOWN, bottonBtnDown);
//滑块
slipMc.addEventListener(MouseEvent.MOUSE_DOWN, slipDown);
event.target.removeEventListener(Event.ENTER_FRAME, addStageEvent);
}
}
//文本滚动时候
private function textScroll(event:Event) {
//trace(Text.scrollV+"|"+Text.maxScrollV)
if (Text.maxScrollV != 1) {
ScrollBarMc.visible=true;
slipVar=Text.scrollV/Text.maxScrollV;
if (Text.scrollV!=1) {
slipMc.y=bgMc.y+(slipHeight*slipVar);
} else {
slipMc.y=bgMc.y;
}
} else {
ScrollBarMc.visible=false;
}
}
/*
* 滑块滚动
*/
private function slipDown(event : MouseEvent):void {
//首先取消文本框滚动侦听,因为文本滚动的时候会设置滑块的位置,而此时是通过滑块调整文本的位置,所以会产生冲突
Text.removeEventListener(Event.SCROLL, textScroll);
//限定拖动范围
var dragRect : Rectangle = new Rectangle(slipMc.x, bgMc.y, 0, slipHeight);
slipMc.startDrag(false,dragRect);
ScrollBarMc.addEventListener(Event.ENTER_FRAME, slipMcDownTime);
slipMc.stage.addEventListener(MouseEvent.MOUSE_UP, slipUp);
}
private function slipMcDownTime(event : Event):void {
Text.scrollV=Math.round(((slipMc.y-upBtn.height)/slipHeight)*Text.maxScrollV);
}
private function slipUp(event : MouseEvent):void {
Text.addEventListener(Event.SCROLL, textScroll);
slipMc.stopDrag();
slipMc.stage.removeEventListener(MouseEvent.MOUSE_UP, slipUp);
}
/*
* 上滚动按钮
*/
private function upBtnDown(event : MouseEvent):void {
Text.scrollV--;
if (Text.scrollV>1) {
slipMc.y =bgMc.y+(slipHeight*(Text.scrollV/Text.maxScrollV));
} else {
slipMc.y =bgMc.y;
}
//当鼠标在按钮上按下的时间大于设定时间时,连续滚动
putTime = getTimer();
ScrollBarMc.addEventListener(Event.ENTER_FRAME, upBtnDownTime);
upBtn.stage.addEventListener(MouseEvent.MOUSE_UP, upBtnUp);
}
private function upBtnDownTime(event : Event):void {
if (getTimer() - putTime > 500) {
Text.scrollV--;
if (Text.scrollV>1) {
slipMc.y =bgMc.y+(slipHeight*(Text.scrollV/Text.maxScrollV));
} else {
slipMc.y =bgMc.y;
}
}
}
private function upBtnUp(event : MouseEvent):void {
ScrollBarMc.removeEventListener(Event.ENTER_FRAME, upBtnDownTime);
upBtn.stage.removeEventListener(MouseEvent.MOUSE_UP, upBtnUp);
}
/*
* 下滚动按钮
*/
private function bottonBtnDown(event : MouseEvent):void {
Text.scrollV++;
slipMc.y =bgMc.y+(slipHeight*(Text.scrollV/Text.maxScrollV));
//当鼠标在按钮上按下的时间大于设定时间时,连续滚动
putTime = getTimer();
ScrollBarMc.addEventListener(Event.ENTER_FRAME, bottonBtnTime);
bottonBtn.stage.addEventListener(MouseEvent.MOUSE_UP, bottonBtnUp);
}
private function bottonBtnTime(event : Event):void {
if (getTimer() - putTime > 500) {
Text.scrollV++;
slipMc.y =bgMc.y+(slipHeight*(Text.scrollV/Text.maxScrollV));
}
}
private function bottonBtnUp(event : MouseEvent):void {
ScrollBarMc.removeEventListener(Event.ENTER_FRAME, bottonBtnTime);
bottonBtn.stage.removeEventListener(MouseEvent.MOUSE_UP, bottonBtnUp);
}
}
}
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.SimpleButton;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
//方向按钮类directionButton
class directionButton extends SimpleButton {
var upColor:uint = 0xE1E1E1;
var overColor:uint = 0xE6E6E6;
var downColor:uint = 0xcccccc;
var size:uint;
var way:uint;
public function directionButton(size,way) {
this.size=size;
this.way=way;
downState = new directionButtonDisplayState(downColor, size,way);
overState = new directionButtonDisplayState(overColor, size,way);
upState = new directionButtonDisplayState(upColor, size,way);
hitTestState = new directionButtonDisplayState(upColor, size,way);
}
}
//绘制方向按钮的方法类directionButtonDisplayState
class directionButtonDisplayState extends Shape {
var bgColor:uint;
var size:uint;
var way:uint;
public function directionButtonDisplayState(bgColor:uint, size:uint,way:uint) {
this.bgColor = bgColor;
this.size = size;
this.way=way;
draw();
}
private function draw():void {
graphics.beginFill(bgColor);
graphics.drawRect(0, 0, size, size);
graphics.endFill();
graphics.beginFill(0xffffff,.4);
if (way==1) {
graphics.drawRect(0, 0, size, size/2);
graphics.endFill();
} else if (way==2) {
graphics.drawRect(0, size/2, size, size/2);
graphics.endFill();
} else if (way==3) {
graphics.drawRect(0, 0, size/2, size);
graphics.endFill();
} else if (way==4) {
graphics.drawRect(size/2, 0, size/2, size);
graphics.endFill();
}
graphics.beginFill(0x000000);
graphics.lineStyle(1, bgColor, 0,true);
if (way==1) {
graphics.moveTo(size/2, size/2-size/4);
graphics.lineTo(size/2+size/4,size/2+size/4);
graphics.lineTo(size/2-size/4,size/2+size/4);
graphics.lineTo(size/2, size/2-size/4);
} else if (way==2) {
graphics.moveTo(size/2, size/2+size/4);
graphics.lineTo(size/2+size/4,size/2-size/4);
graphics.lineTo(size/2-size/4,size/2-size/4);
graphics.lineTo(size/2, size/2+size/4);
} else if (way==3) {
graphics.moveTo(size/2-size/4, size/2);
graphics.lineTo(size/2+size/4,size/2-size/4);
graphics.lineTo(size/2+size/4,size/2+size/4);
graphics.lineTo(size/2-size/4, size/2);
} else if (way==4) {
graphics.moveTo(size/2+size/4, size/2);
graphics.lineTo(size/2-size/4,size/2-size/4);
graphics.lineTo(size/2-size/4,size/2+size/4);
graphics.lineTo(size/2+size/4, size/2);
}
}
}
发表评论
-
haXe是什么?
2016-01-04 10:50 1075haXe是什么? haXe是一种编程语言,官方网站在 ... -
用EA类图生成AS3代码
2008-10-15 16:18 2723EA(Enterprise Architect)是支持多种流 ... -
变形实例-source
2008-10-15 12:46 1555涂抹原理 橡皮擦原理 import flash.geom.P ... -
actionScript 3.0 图片裁剪及旋转
2008-10-10 12:54 5960package com.wdxc { /** ... -
Flash(AS3)读取Excel文件
2008-10-09 13:29 5189var excelXml:XML; var loader=ne ... -
AS3 Loading的制作方法
2008-10-09 13:28 6080AS2的时候做LOADING有很多种方法,做起来也得心应手可是 ... -
让"Flash" 写文件(AS3)
2008-09-11 16:23 1803目前,出于安全考虑Flash不支持写文件的操作,在AS3的A ... -
AS3 中的 拖动 及 碰撞 检测
2008-09-11 16:11 2943没有press和release事件 hitTest()被分尸 ... -
As和js通信问题完全解析(解决addcallback失效的问题)
2008-09-11 16:10 3662as和js通信最早用的是fscommand,这个我就不说了,老 ... -
Flash CS3制作Fla形式的组件
2008-06-16 14:45 1396本文为大家介绍如何制作Flash CS3中的[*.fla]形 ... -
AS3图像处理之剪裁、动态选取
2008-06-15 23:25 2258和师傅写C#写的思维混乱,方法变量几乎第一反应就是大写,习惯都 ... -
从界面入手 划分类
2008-06-15 19:25 1291如何将一个项目细化成各个类呢? 1 从一个项目的界面入手,按照 ... -
AS3-DisplayEffect组件
2008-06-14 20:40 2084[AS3]DisplayEffect组件【组件版本】:0.5【 ... -
KTooltip 工具提示组件
2008-06-14 20:38 1040发布一个小工具KTooltip 。这是0.9beta版,出发日 ... -
AS3.0写的一个滚动条【缓动效果】
2008-06-13 16:10 6395package { import flash.d ... -
自定义滚动条类
2008-06-13 16:01 2095在平常的开发中,经常需要用到滚动条,今天将滚动条类整理了下,有 ... -
AS3加载机制
2008-06-13 15:03 2219摸了好一阵子,才弄明白AS3.0的加载机制.还是坚持自己的原则 ... -
写了一个Flash的Transition
2008-06-11 10:36 1753写了一个Flash的Transition package { ... -
JavaScript与ActionScript函数相互调用
2008-06-06 15:07 22851、在JavaScript中调用Flex( ... -
传参之事件代理
2008-06-05 10:23 1113有时候我们在调用事件侦听器的时候,需要给它传进相应的参数,这个 ...
相关推荐
5. **自定义样式**:AS3允许你通过覆盖默认皮肤或使用自定义皮肤类来自定义滚动条的外观。 6. **布局和定位**:根据界面设计,将滚动条放置在合适的位置。 源码可能包含了创建自定义滚动条的完整过程,包括自定义...
总结起来,创建AS3中的`TextField`动态文本滚动条模型涉及到以下步骤: 1. 设置`TextField`的`scrollV`和`scrollH`属性。 2. 创建自定义滚动条的轨道和滑块形状。 3. 添加事件监听器,处理滑块的拖动和文本的改变。 ...
在"Brnad AS3滚动条 V 1.02"这个压缩包中,可能包含了一个自定义滚动条组件的源代码。你可以通过研究源码来学习如何实现上述功能,包括如何创建组件、添加事件监听器、处理鼠标事件以及计算滑块位置。源码还可能包含...
5. **事件处理**: AS3中的Event类和MouseEvent类是处理滚动条交互的关键。例如,MOUSE_DOWN事件用于检测用户是否开始拖动滑块,CHANGE事件则在滑动过程中触发,用于更新内容位置。 6. **坐标和缩放**: AS3滚动条...
AS3随机滚动文本是一种在ActionScript 3(AS3)编程环境下实现的动态文本显示技术。这个技术主要用于创建视觉上吸引人的用户界面元素,比如新闻滚动条、公告栏或者广告展示。在给定的资源中,包含了一个名为...
此段代码展示了一个名为`ScrollBar`的类,该类继承自`Sprite`类,并通过构造函数和其他方法实现了一个动态文本滚动条的功能。主要组成部分包括: 1. **滚动文本域** (`scrollText`): 用于显示和滚动文本。 2. **...
本资源"FLASH多用途滚动条AS2版本"提供了一个适用于多种场景的滚动条组件,特别适合那些需要在Flash内容中实现滚动功能的开发者。这个组件可能包括水平滚动条和垂直滚动条,可以应用于网页、Flash影片或其他基于...
例如,以下是一个简单的VB代码示例,展示了如何实现这一功能: ```vb Private Sub ScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles ScrollBar1.Scroll ' 获取滚动条的值 Dim scrollValue As ...
从最初下载的火山动态文本滚动条V5到现在的版本,优化了很多,也改了些小bug,目前版本不能说非常完美但也自认为很棒了。 今天我就将多年的成果贡献出来,让大家借鉴或批评^_^,今天我还完善了一下,以后我还会继续...
在AS3中,我们可以创建一个自定义的滚动条组件,以适应各种设计需求,比如改变滚动条的样式或行为。 首先,我们来看"phhui_ScrollBar.as"这个文件。这很可能是定义滚动条类的源代码文件。在这个类中,开发者可能...
这个"flash滚动条动态文本-源码"提供了一个经过调试且可直接使用的实例,适用于那些希望在Flash项目中集成类似功能的开发者。 首先,我们要理解动态文本在Flash中的概念。动态文本(Dynamic Text)允许用户在运行时...
在VB(Visual Basic)编程中,滚动条是一个常用的控件,它允许用户通过直观的滑块来调整数值或浏览内容。滚动条分为水平滚动条(HScroll)和垂直滚动条(VScroll),常用于文本框、表格等元素,以便用户在大量数据中...
4. **滚动条的基本结构**:滚动条通常由两个主要部分组成——一个可拖动的滑块和一个指示整体范围的轨道。滑块的移动反映了内容的滚动位置,而轨道则表示内容的整体范围。在Flash中,可以通过实例化和配置MovieClip...
以下是一个简单的ActionScript代码片段,用于创建一个垂直滚动条并添加缓动效果: ```actionscript import fl.transitions.Tween; import fl.transitions.easing.*; var contentHeight:Number = // 获取内容高度 ...
在VB(Visual Basic)编程环境中,创建一个带有滚动条的窗体是一项常见的需求,尤其是在开发类似文本编辑器或数据查看器的应用程序时。这个“VB带有滚动条的窗体”项目提供了一种实现这一功能的方法,它使得用户可以...
以下是一个简单的VB6.0滚动条应用实例源代码: ```vb Private Sub Form_Load() ' 初始化滚动条 ScrollBar1.Min = 1 ScrollBar1.Max = 100 ScrollBar1.SmallChange = 1 ScrollBar1.LargeChange = 10 End Sub ...
- 定时器(`flash.utils.Timer`类):创建一个定时器,每隔一定时间调整`scrollV`属性,从而实现文本的自动滚动。 5. **事件监听**:可能使用了`Event.ENTER_FRAME`事件,每当舞台进入新的一帧时,执行滚动函数,...
滚动条有两部分:一个是水平滚动条(Horizontal Scrollbar),另一个是垂直滚动条(Vertical Scrollbar)。每个滚动条都有四个关键属性: 1. **值(Value)**:当前滚动条的位置。 2. **最大值(Maximum)**:滚动...
在Delphi编程环境中,ListBox控件是常用的组件之一,它用于显示一行或多行文本,通常用于用户选择一个或多个选项。然而,默认情况下,ListBox只支持垂直滚动,如果数据宽度超过了控件的宽度,就会导致部分信息无法...
以下是一个简单的示例,展示了如何为`txtQueryResult`添加滚动条: ```java public class Operate extends JFrame { // ... 其他成员变量 ... JTextArea txtQueryResult = new JTextArea(); public Operate() ...