`

滚动条算法

阅读更多
package {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.geom.Rectangle;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;

        public class GundongTiao extends Sprite
        {
                private var dragBar:DragBar;
                private var dragTrack:DragTrack;
                
                private var tf:TextField;
                
                private var content:TextField;
                
                private var tfMask:Sprite;
                
                private var value:Number;
                
                public function GundongTiao()
                {
                        
                        
                        tf = new TextField();
                        tf.width = 100;
                        tf.height = 20;
                        tf.border = true;
                        tf.background = true;
                        tf.x = 50;
                        tf.y = 10;
                        tf.text = "0";
                        addChild(tf);
                        
                        content = new TextField();
                        content.width = 300;
                        content.height = 250;
                        content.wordWrap = true;
                        content.autoSize= TextFieldAutoSize.LEFT;
                        content.border = true;
                        content.background = true;
                        content.x = 50;
                        content.y = 50;
                        content.text = "asdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfnasdaf\ndsafsdfasd\nfasdfasdfasd\nfasdfasdfasdf\nasdafdsafs\ndfasdfas\ndfasdf\nasdfasdfasdfasdfn";
                        addChild(content);
                        
                        tfMask = new Sprite();
                        tfMask.graphics.beginFill(0xffffff);
                        tfMask.graphics.drawRect(0,0,320,250);
                        tfMask.graphics.endFill();
                        tfMask.x = 50;
                        tfMask.y = 50;
                        addChild(tfMask);
                        
                        content.mask = tfMask;
                        
                        dragTrack = new DragTrack();
                        dragTrack.x = 450;
                        dragTrack.y = 50;
                        addChild(dragTrack);
                        
                        dragBar = new DragBar();
                        dragBar.x = 450;
                        dragBar.y = 50;
                        addChild(dragBar);
                        
                        addListener();
                }
                
                private function addListener():void
                {
                        dragBar.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownListener);
                        stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpListener);
                }
                
                private function mouseDownListener(event:MouseEvent):void
                {
                        var rec:Rectangle = new Rectangle(dragTrack.x,dragTrack.y,0,dragTrack.height - dragBar.height);
                        dragBar.startDrag(false,rec);
                        
                        stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveListener);
                }
                
                private function mouseMoveListener(event:MouseEvent):void
                {
                        value = Math.round((dragBar.y - dragTrack.y)/(dragTrack.height - dragBar.height)*100);
                        
                        updateText();
                        
                        updateContent();
                }
                
                private function mouseUpListener(event:MouseEvent):void
                {
                        dragBar.stopDrag();
                        
                        stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveListener);
                }
                
                private function updateText():void
                {
                        tf.text = String(value);
                }
                
                private function updateContent():void
                {
                        content.y = 50 - (value/100*(content.height-250));
                }
        }
}




package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.geom.Rectangle;
        import gs.TweenLite;
        /**
         * @author FLASH023
         * @date 2010-8-27 12:22
        **/
        public class ScrollText extends Sprite  
        {
                public function ScrollText():void {
                        stage?init(null):addEventListener (Event.ADDED_TO_STAGE, init);
                }
                public function init(e:Event ):void {
                                con_mc.mask=mask_mc;
                                con_mc.x = mask_mc.x;
                                bar_mc.x = line_mc.x= mask_mc.x + mask_mc.width;
                                bar_mc.y = line_mc.y = con_mc.y=mask_mc.y;
                                //
                                /*con_mc._txt.autoSize = "left";
                                con_mc._txt.multiline =true;
                                con_mc._txt.wordWrap =true;
                                con_mc._txt.width = mask_mc.width;
                                setText(con_mc._txt.htmlText);*/
                                //
                                setText(null);
                                bar_mc.buttonMode = true;
                                bar_mc.addEventListener (MouseEvent.MOUSE_DOWN, mouseDown);
                                //
                                removeEventListener (Event.ADDED_TO_STAGE, init);
                }
                private function mouseDown(e:MouseEvent ):void {
                        bar_mc.startDrag(false,new Rectangle(line_mc.x,line_mc.y,0,line_mc.height-bar_mc.height) );
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
                        stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
                }
                
                private function mouseUp(e:MouseEvent):void 
                {
                        stopDrag();
                        stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
                        stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUp);
                }
                
                private function mouseMove(e:MouseEvent):void 
                {
                        var _py:Number =(bar_mc.y-line_mc.y)/(line_mc.height-bar_mc.height) *(mask_mc.height -con_mc.height );
                        TweenLite.to(con_mc,.3,{y:mask_mc.y+_py});
                }
                private function setText(_str:String ) {
                                //con_mc._txt.htmlText = _str;
                                bar_mc.y = con_mc.y=mask_mc.y;
                                //
                                bar_mc.visible = line_mc.visible = con_mc.height > mask_mc.height;
                                //bar_mc.height = mask_mc.height / con_mc.height * line_mc.height;
                        }
        }
        
}
分享到:
评论

相关推荐

    AS3 滚动条

    AS3滚动条是ActionScript 3.0编程语言中实现的一种用户界面元素,它主要用于在内容超出可视区域时提供导航。在AS3中,滚动条是通过Flash的UI组件库来创建和控制的,允许用户在长或宽的数据显示区域中进行上下或左右...

    网页滚动条样式css智能配色器

    网页滚动条样式是网页设计中一个常常被忽略但至关重要的细节。CSS(层叠样式表)为开发者提供了定制滚动条外观的可能性,使得滚动条能够更好地融入网页的整体设计风格,提升用户体验。本文将深入探讨如何使用CSS来...

    易语言-易语言滚动条操作示例

    在"滚动条操作示例[明靓]"这个例子中,开发者可能展示了如何创建一个包含滚动条的窗口,然后通过编程控制滚动条的移动,响应滚动条的改变事件,更新界面内容。例如,当用户滚动滚动条时,可能会动态改变文本框中的...

    通过滚动条调节图像的亮度

    在这个项目中,“通过滚动条调节图像的亮度”是核心功能,它允许用户通过界面中的滚动条动态改变图像的亮度级别。 首先,我们需要创建一个Windows应用程序,包含一个主窗口,并在窗口上添加一个滚动条控件...

    实现界面垂直滚动条随焦点控件移动而移动

    界面上有很多控件,而且控件焦点利用Tab或者Enter建操作,但是垂直滚动条位置也需要跟随焦点位置移动,...该实例利用递归算法,逐层计算出当前焦点控件所对应于滚动条所在容器的相对Y坐标,给滚动条设置最新位置坐标。

    VC++中为PIC空间添加滚动条显示大图片

    为了将滚动条与图片显示联动,我们需要监听滚动条的滚动事件(如SB_THUMBTRACK),并根据滚动条的位置更新图片的显示区域。这通常涉及到计算新的图片显示坐标,然后更新PIC控件的位图。同时,滚动条的最小值和最大值...

    字幕滚动条,根据设定在屏幕上滚动显示设定的内容,文字信息可以实时更改,测试通过。

    在IT领域,字幕滚动条通常是指一种软件功能,它能够在屏幕的特定区域按照预设方式动态地显示滚动文本,这种技术广泛应用于多媒体播放、电视广播、信息展示、会议系统等场景。字幕滚动条的设计旨在提供一种高效的信息...

    VB使用滚动条实现图形的缩放

    在VB(Visual Basic)编程环境中,滚动条是一个常用的控件,可以用来提供用户交互,例如调整音量、改变视图范围或控制图形的缩放。本教程将详细讲解如何利用VB中的滚动条(HScrollBar或VScrollBar)来实现图形的缩放...

    vc 源代码 智能滚动条

    5. **滚动逻辑**:智能滚动条的滚动速度和阻尼效果是关键特性,源代码会包含这部分的算法实现,以提供流畅的用户体验。 6. **用户交互**:包括鼠标滚轮、键盘快捷键等操作的处理,使得用户能够方便地控制滚动条。 ...

    Halcon+MFC,实现(1)鼠标对图像进行缩放、拖拽(2)添加滚动条

    在本文中,我们将深入探讨如何使用Halcon与MFC(Microsoft Foundation Classes)结合,实现图像处理中的关键功能:鼠标对图像进行缩放和拖拽,以及添加滚动条以查看大图像。Halcon是一款强大的机器视觉软件,而MFC是...

    日志、图片使用的滚动条代码

    "日志、图片使用的滚动条代码"这个主题,主要涉及JavaScript(JS)组件的开发,用于创建具有图形优化的滚动条,以提供更好的用户体验。以下是关于这个主题的一些详细知识点: 1. **JavaScript基础**:JavaScript是...

    C++实现分水岭算法(Watershed Algorithm)

    "C++实现分水岭算法(Watershed Algorithm)" 本文详细介绍了C++实现分水岭算法(Watershed Algorithm),该算法是一种基于拓扑理论的数学形态学的分割方法。下面是相关的知识点: 1. 分水岭算法的基本思想:将...

    C#中文文档,经典算法分析与程序设计,特色滚动条,网页设计常用的Gif图标947个

    在压缩文件"新建文件夹 (2)"中,可能包含了上述所有提到的资源,如C#的文档、算法分析的教程、可能的C#滚动条设计示例,以及那947个GIF图标。解压并查看这些文件,将能获得更具体的学习材料和设计素材。 总的来说,...

    fpv4 flash相册系统

    再次改进了滚动条算法 严重更改分类选择界面,增加文件夹图标及内容显示 数据库更新: 数据库 [setup] 表增加字段 ext9 用于显示网站标题 FlashPicViewer v4 beta2 ---------------------------------------------...

    MATLAB GUI教学视频3:滚动条数值显示在文本框中.rar

    在这个“MATLAB GUI教学视频3:滚动条数值显示在文本框中”的教程中,我们将深入探讨如何将滚动条的数值实时地显示在GUI的文本框中。 首先,创建MATLAB GUI通常涉及以下步骤: 1. 使用GUIDE(Graphical User ...

    Static滚动条+OpenCv使用+橡皮筋技术

    在本文中,我们将深入探讨如何将静态控件(Static)与滚动条、OpenCV库以及橡皮筋技术结合使用,以实现更为丰富的用户界面交互。首先,我们需要理解静态控件在Windows应用程序中的作用,它是用来显示固定文本或者...

    易语言源码发送消息模拟点击滚动条.7z

    "发送消息模拟点击滚动条"这个项目可能是一个易语言编写的程序,它的主要功能是通过模拟用户操作来控制滚动条的上下移动。 在Windows操作系统中,滚动条是常见的控件,用于在内容超过窗口显示范围时浏览文本、图像...

    高性能的纯Js滚动条美化插件

    《高性能的纯JavaScript滚动条美化插件:Smooth Scrollbar深度解析》 在现代网页设计中,用户体验成为衡量网站质量的重要标准之一。其中,滚动条作为用户与页面交互的关键元素,其设计与性能对整体体验有着不可忽视...

    滚动的菜单可以实现菜单的来回滚动

    4. 用户反馈:滚动时应有明显的视觉反馈,如改变滚动条位置、高亮当前选中项等,帮助用户感知滚动状态。 综上所述,滚动菜单是一个既实用又具有视觉吸引力的设计元素,通过合理的编程和设计,可以提升用户与应用的...

    16*64点阵滚动显示汉字原理图及算法,

    ### 16*64点阵滚动显示汉字原理图及算法 #### 一、方案比较与选择 在设计16*64点阵滚动显示汉字系统时,涉及到两个主要方面:主控芯片的选择与锁存器的选择。 ##### 主控芯片的选择 **方案一**:使用51单片机...

Global site tag (gtag.js) - Google Analytics