Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Скролл и изменяющийся мувмк (http://www.flasher.ru/forum/showthread.php?t=145382)

wcbfalcon 06.10.2010 13:41

Скролл и изменяющийся мувмк
 
Вложений: 1
и снова излюбленный вопрос большинства - скроллинг

ранее использовал в своем примере стандартный ScrollPane и до определенного момента он меня устраивал, но появилась нужда в собственном виде скрола а в SP на AS2 его изменить нельзя (по крайней мере я ни где не нашел этого только в AS3)

нашел в одной из тем довольно подходящий пример скролла и использовал его но у меня объект скролируемый изменяется (в зависимости от нажатой кнопки) а область прокрутки при этом остается не изменой (по изначальному объекту).

в примере подключение разных блоков я осуществляю путем изменения их высоты, но хотелось бы еще узнать можно ли использовать чтото подобное как в SP
Код AS1/AS2:

clip_mc.sp.contentPath = "obj_text";

Прошу помочь доработать скрипт. :umnik2:

in4core 06.10.2010 23:53

Код AS1/AS2:

class com.AlexNavigation.scrollbarDEFENDER {
        var _S:MovieClip;//scroller
        var _M:MovieClip;//mask
        var _C:MovieClip;//content
        var _d;
        var _u;
        var top;
        var bottom;
        var left;
        var right;
        var _int;
        var _int2;
        public function scrollbarDEFENDER() {
        }
        private function scrollIt(_s, _m, _c, useButtons, btDown, btUp) {
                if (useButtons == undefined) {
                        useButtons = false;
                }
                _S = _s;
                _M = _m;
                _C = _c;
                _d = btDown;
                _u = btUp;
                top = _M._y;
                bottom = _M._y+_M._height-_S._height;
                left = _M._x;
                right = _M._x+_M._width;
                _C._y = top;
                _C._x = left;
                _S._y = top;
                _S._x = right;
 
                _S.onPress = mx.utils.Delegate.create(this, PRESS);
                _S.onMouseMove = mx.utils.Delegate.create(this, Update);
                _S.onRelease = _S.onReleaseOutside=btDown.onRelease=btUp.onRelease=btDown.onReleaseOutside=btUp.onReleaseOutside=mx.utils.Delegate.create(this, RELEASE);
                _M.onMouseMove = mx.utils.Delegate.create(this, check);
                if (useButtons) {
                        _S._visible = false;
                        btDown.onPress = mx.utils.Delegate.create(this, dREL);
                        btUp.onPress = mx.utils.Delegate.create(this, upREL);
                }
        }
        function RELEASE() {
                clearInterval(_int);
                _S.stopDrag();
        }
        function Update() {
                var ratio = (_C._height-_M._height)/(_M._height-_S._height);
                _C._y = ((_M._y-_S._y)*ratio)+_M._y;
        }
        function PRESS() {
                if (_M._height<_C._height) {
                        _S.startDrag(false,right,top,right,bottom);
                }
        }
        function check() {
                if (_M._height<_C._height) {
                        _S.enabled = true;
                        _d._visible = true;
                        _u._visible = true;
                } else {
                        _S.enabled = false;
                        _d._visible = false;
                        _u._visible = false;
                }
        }
        function dREL() {
                clearInterval(_int);
                _int = setInterval(this, "D", 40);
                _d.gotoAndStop(3);
        }
        function upREL() {
                clearInterval(_int);
                _int = setInterval(this, "O", 40);
                _u.gotoAndStop(3);
        }
        function O() {
                if (_S._y<_M._y+_M._height-_S._height && _C._height>_M._height) {
                        _S._y = _S._y+5;
                }
                Update();
        }
        function D() {
                if (_S._y != _M._y && _C._height>_M._height) {
                        _S._y = _S._y-5;
                }
                Update();
        }
}

Ненужное сотри, лень править. В поиске тут поищи, я правленый выкладывал

wcbfalcon 07.10.2010 13:24

если можно поясни пожалуйста вот эти переменные:
var _d; - ?
var _u; - ?
var top; - предполпгаю что кнопка вверх
var bottom; - предполпгаю что кнопка вниз
var left; - лево при горизонтале
var right; - право при горизонтале
var _int; - ?
var _int2; - ?
и правильно ли я понял те что подписал


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

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