ogonek
20.06.2008, 16:53
Здравствуйте!
Есть скролл
if (obj_mc._height<375)
{
scroll_mc._alpha=0;
line._alpha=0;
mask_mc._alpha=0;}
else if (obj_mc._height>375)
{
obj_mc.setMask(mask_mc);
var varDif:Number = obj_mc._height- mask_mc._height;
scroll_mc.onPress = function() {
this.gotoAndStop(2);
this.startDrag(false, this._x, 0, this._x, mask_mc._height-this._height);
this.onMouseMove = function() {
this._parent.obj_mc._y = -this._parent.varDif*(this._y/mask_mc._height);
};
};
scroll_mc.onRelease = scroll_mc.onReleaseOutside=function () {
this.gotoAndStop(1);
this.stopDrag();
delete this.onMouseMove;
};
}
var scrollHeight:Number = mask_mc._height - 50;
var varScroll:Number = obj_mc._height/mask_mc._height;
var mouseListener:Object = new Object();
var minY:Number = 0;
var maxY:Number = scrollHeight;
var step:Number = 10;
var minZ:Number = -varDif;
var maxZ:Number = 0;
var step:Number = 40*varScroll;
mouseListener.onMouseWheel = function(delta) {
scroll_mc._y = Math.min(Math.max(scroll_mc._y + step * - delta / Math.abs(delta), minY), maxY);
obj_mc._y = Math.min(Math.max(obj_mc._y + step * delta / Math.abs(delta), minZ), maxZ);
}
Mouse.addListener(mouseListener);
то что касается колесика мыши я выделила.
все работает, но при прокрутке когда ползунок уже дошел до конца текст в клипе obj_mc продолжает прокручиваться, при этом при разной скорости движения колеса он двигается по-разному.
пробовала менять формулу, максимальные и минимальные значения, ставила разные числа, придумывала переменные - ничего не выходит толком.
мне кажется, это движение должно зависить от того, во сколько раз объект длинее области прокрутки, но не разобраться.
мой вопрос:
можно ли изменить существующую формулу, чтобы все работало как надо?
если да, то как?
если нет, как мне именно в моем случае сделать прокрутку колесом?
Есть скролл
if (obj_mc._height<375)
{
scroll_mc._alpha=0;
line._alpha=0;
mask_mc._alpha=0;}
else if (obj_mc._height>375)
{
obj_mc.setMask(mask_mc);
var varDif:Number = obj_mc._height- mask_mc._height;
scroll_mc.onPress = function() {
this.gotoAndStop(2);
this.startDrag(false, this._x, 0, this._x, mask_mc._height-this._height);
this.onMouseMove = function() {
this._parent.obj_mc._y = -this._parent.varDif*(this._y/mask_mc._height);
};
};
scroll_mc.onRelease = scroll_mc.onReleaseOutside=function () {
this.gotoAndStop(1);
this.stopDrag();
delete this.onMouseMove;
};
}
var scrollHeight:Number = mask_mc._height - 50;
var varScroll:Number = obj_mc._height/mask_mc._height;
var mouseListener:Object = new Object();
var minY:Number = 0;
var maxY:Number = scrollHeight;
var step:Number = 10;
var minZ:Number = -varDif;
var maxZ:Number = 0;
var step:Number = 40*varScroll;
mouseListener.onMouseWheel = function(delta) {
scroll_mc._y = Math.min(Math.max(scroll_mc._y + step * - delta / Math.abs(delta), minY), maxY);
obj_mc._y = Math.min(Math.max(obj_mc._y + step * delta / Math.abs(delta), minZ), maxZ);
}
Mouse.addListener(mouseListener);
то что касается колесика мыши я выделила.
все работает, но при прокрутке когда ползунок уже дошел до конца текст в клипе obj_mc продолжает прокручиваться, при этом при разной скорости движения колеса он двигается по-разному.
пробовала менять формулу, максимальные и минимальные значения, ставила разные числа, придумывала переменные - ничего не выходит толком.
мне кажется, это движение должно зависить от того, во сколько раз объект длинее области прокрутки, но не разобраться.
мой вопрос:
можно ли изменить существующую формулу, чтобы все работало как надо?
если да, то как?
если нет, как мне именно в моем случае сделать прокрутку колесом?