Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как сделать скрол (http://www.flasher.ru/forum/showthread.php?t=179488)

areostar 16.05.2012 01:18

как сделать скрол
 
имеется некоторое количество строк(скажем из БД не важно) полностью код не помещается на отведённой площади(мувик) надо следать скрол, нарисовать то я смогу только вот как прокручивать тест и скрывать лишнее? оьбясните пожалуйста!!

bav 16.05.2012 01:24

Используйте либо TextField.scrollV, либо DisplayObject.scrollRect.

in4core 16.05.2012 01:25

либо :
Код AS3:

package com.in4core.navigation 
{
        import flash.display.DisplayObject;
        import flash.display.DisplayObjectContainer;
        import flash.display.Sprite;
        import flash.errors.IllegalOperationError;
        import flash.events.MouseEvent;
        import flash.geom.Rectangle;
        import flash.text.TextField;
        /**
        * ...
        * @author in4core
        * Display or Text Object Scroller
        * use addScroll methods to define Scroller
        * Version 1.0
        */

        public final class UIScrollBar
        {       
                //-----------------DisplayObjectInit-----------//
                /*objects*/
                private var _scroll:Sprite;
                private var _mask:DisplayObject;
                private var _content:DisplayObject;
                private var _rect:Rectangle;
 
                /*coords*/
                private var _startYScroll:int;
                private var _startYContent:int;
                private var _wayOfScroll:int;
 
                //-----------------TextFieldInit-----------//
 
                /*objects*/
                private var _tscroll:Sprite;
                private var _tf:TextField;
                private var _trect:Rectangle;
 
                /*coords*/
                private var _wayOfTextScroll:int;
 
                /////////////////////////////////////////////////////////////////////
                //!4
                //!  4                      PUBLIC
                //!    4                                                         
                /////////////////////////////////////////////////////////////////////
 
                public function addScrollObject( scroll:Sprite,mask:DisplayObject,content:DisplayObject,way:int ):void {
 
                        this._scroll = scroll;
                        this._mask = mask;
                        this._content = content;
                        this._wayOfScroll = way;
                        this._startYScroll = _scroll.y;
                        this._startYContent = _content.y;
                        this._rect = new Rectangle(_scroll.x, _scroll.y, 0, _wayOfScroll);
 
                        /*events*/
 
                        _scroll.addEventListener(Event.ADDED_TO_STAGE , onScrollAdded);
 
                }
                private function onScrollAdded(e:Event) {
 
                        _scroll.removeEventListener(Event.ADDED_TO_STAGE , onScrollAdded);
                        _scroll.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);
                        _scroll.stage.addEventListener(MouseEvent.MOUSE_UP, dragStop);
 
                        trace( 'UIScrollBar-Display : INIT' );
                }
                public function addScrollText( tf:TextField , scroll:Sprite , way:int ):void {
 
                        this._tscroll = scroll;
                        this._tf = tf;
                        this._wayOfTextScroll = way;
                        this._trect = new Rectangle(_tscroll.x, _tscroll.y, 0, _wayOfTextScroll);
 
                        /*events*/
 
                        _tscroll.addEventListener(Event.ADDED_TO_STAGE , onTScrollAdded);
 
                }
                private function onTScrollAdded(e:Event) {
 
                        _tscroll.removeEventListener(Event.ADDED_TO_STAGE , onScrollAdded);
                        _tscroll.addEventListener(MouseEvent.MOUSE_DOWN , tdragStart);
                        _tscroll.stage.addEventListener(MouseEvent.MOUSE_UP , tdragStop);
 
                        trace( 'UIScrollBar-Text : INIT' );
                }
                public function destroy():void {
 
                        if (_scroll != null ) {
 
                                _scroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
                                _scroll.removeEventListener(MouseEvent.MOUSE_DOWN, dragStart);
                                _scroll.stage.removeEventListener(MouseEvent.MOUSE_UP, dragStop);
                        }
 
                        if (_tscroll != null ) {
 
                                _tscroll.removeEventListener(MouseEvent.MOUSE_DOWN , tdragStart);
                                _tscroll.stage.removeEventListener(MouseEvent.MOUSE_UP , tdragStop);
                                _tscroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
                        }
 
                        trace( 'UIScrollBar : REMOVED' );
 
                }
                /////////////////////////////////////////////////////////////////////
                //!4
                //!  4                      PRIVATE
                //!    4                                                         
                /////////////////////////////////////////////////////////////////////
                private function tdragStart(e:MouseEvent):void {
 
                        _tscroll.startDrag(false, _trect);
                        _tscroll.stage.addEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
                }
 
                private function tdragStop(e:MouseEvent):void {
 
                        _tscroll.stopDrag();
                        _tscroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
                }
 
                private function dragStart(e:MouseEvent):void {
 
                        _scroll.startDrag(false, _rect);
                        _scroll.stage.addEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
                }
 
                private function dragStop(e:MouseEvent):void {
 
                        _scroll.stopDrag();
                        _scroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
                }
 
                private function updatePosition (e:MouseEvent):void {
 
                        if (_mask.height < _content.height)
 
                        {
                                _scroll.mouseEnabled = true;
                                _content.y = _startYContent - ( (_content.height - _mask.height) / _wayOfScroll ) * ( _scroll.y - _startYScroll );
                        }
 
                        else _scroll.mouseEnabled = false;
 
                        updateVisible();
                }
 
                private function updateTextPosition(e:MouseEvent):void {
 
                        _tf.scrollV = Math.round(((_tscroll.y - _trect.y) / _wayOfTextScroll ) * _tf.maxScrollV);
                }
 
                private function updateVisible():void {
 
                        if (_mask.height < _content.height) _scroll.visible = true;
                        else _scroll.visible = false;
                }
 
        }
 
}


fish_r 16.05.2012 12:35

Цитата:

Сообщение от in4core (Сообщение 1079713)
либо :
Код AS3:

...


Красивый код пишешь ) Не знаю - насколько рабочий, но красивый. Читать приятно )


Часовой пояс GMT +4, время: 13:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.