![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Сообщений: 24
|
Простой казалось бы вопрос, но я не могу разобраться.
При прокручивании колесиком мыши, контент муви клипа (area_mc) уезжает за границы сцены. Нужно ограничить скролл муви клипа (area_mc) с текстом и картинками и соответственно, скролл бара (scroller_mc). При прокручивании скрол баром все работает нормально. Подскажите, где искать ответ? код такой: var scrollUpper:Number = 9; var scrollLower:Number = 375; var areaLower:Number = 0; var areaUpper:Number = -425; var scrollRange:Number = scrollLower - scrollUpper; var areaRange:Number = areaLower - areaUpper; function scroll() { var moved:Number = scroller_mc._y - scrollUpper; var pctMoved:Number = moved/scrollRange; var areaMoved:Number = pctMoved*areaRange; area_mc._y = areaLower - areaMoved; } scroller_mc.onPress = function() { this.startDrag(false,this._x,scrollUpper,this._x,scrollLower); this.onMouseMove = scroll; } scroller_mc.onRelease = scroller_mc.onReleaseOutside = function() { this.stopDrag (); this.onMouseMove = null; } var mouseListener:Object = new Object(); mouseListener.onMouseWheel = function(delta) { area_mc._y += delta*4; scroller_mc._y -= delta*4; area_mc.Slide(); } Mouse.addListener(mouseListener); Последний раз редактировалось das uberdog; 17.07.2010 в 01:56. |
|
|||||
|
[+4 06.05.14]
|
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; } } } |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 24
|
Спасибо, попробую разобраться.
А можно как то ограничить прокрутку контента (area_mc) по Y в onMouseWheel? Может так проще будет. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 24
|
То есть мой код не годиться, его не улучшить, мне взять ваш? Ваш не могу разобрать .(
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Если принципиально, выложите исходник (можно упрощенный, но чтобы было видно что скроллится и как) с вашим кодом, лучше в формате CS3.
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 24
|
Не то что бы принципиально, а очень, очень важно...и еще, я ничего не понял из кода in4core
![]() Вот исходник. Нужно просто ограничить движения муви клипа по вертикали. Последний раз редактировалось das uberdog; 18.07.2010 в 01:37. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Замените
на ps. Не понял, что за .Slide() ? вроде поиск не нашел в проекте такую функцию. Последний раз редактировалось rainbowrussia; 18.07.2010 в 02:18. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 24
|
Ааа...то есть не нужно вообще трогать муви клип, можно скроллер использовать!
Спасиба! Вы очень помогли. Я понимал что границы вроде уже есть в скроллере, но как передать их area_mc не понимал. Спасибо еще раз. А чтоб плавно клип подъезжал, как называется функция, что искать в хелпе?? .Slide() видимо закрался во время экспериментов .) Последний раз редактировалось das uberdog; 18.07.2010 в 03:17. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Цитата:
Цитата:
upd. Ну или без Tween, примерно так как во вложении. Последний раз редактировалось rainbowrussia; 18.07.2010 в 04:38. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|