![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 116
|
Дорогие товарищи!
Вот скролл. Все работает отлично. Подскажите, как сделать, чтобы кнопка в скролле (вверх или вниз) срабатывала не при нажатии а при наведении? // объявляем маску и скроллируемый клип var maska:MovieClip = mask_mc; var target:MovieClip = target_mc; //устанавливаем размер и координаты "окошка". Эти параметры по желанию. maska._width = target._width; maska._height = 300 maska._x = 0 maska._y = 0 // совмещаем маску и таргет target._x = maska._x; target._y = maska._y; target.setMask(maska); // совмещаем скроллер и маску scroller_mc._x = maska._x + maska._width; scroller_mc._y = maska._y; // cтроим-ресайзим скроллер var track:MovieClip = scroller_mc.track_mc; var pimp:MovieClip = scroller_mc.pimp_mc; var top:MovieClip = scroller_mc.topbut_mc; var down:MovieClip = scroller_mc.downbut_mc; track._height = maska._height; top._y = top._x = down._x = 0; down._y = maska._height - down._height; pimp._x = 0; pimp._y = top._height; // константы var sh:Number = track._height; // высота скроллера (маски) var dh:Number = down._height; // высота кнопки Вниз var th:Number = top._height; // высота кнопки Вверх var ph:Number = pimp._height; // высота бегунка var pc:Number = pimp._height/2; // центр бегунка var pimpway:Number = sh - dh - th - ph; // расстояние, на которое может смещаться бегунок var targetway:Number = target._height - sh; // расстояние, на которое должен смещаться таргет var pimp_start:Number = th; // лимит смещения бегунка вверх var pimp_stop:Number = th + pimpway; // лимит смещения бегунка вниз // функция зависимости положения таргета от положения движка function scrolling () { pimp._y = pimp._y < pimp_start ? pimp_start : pimp._y > pimp_stop ? pimp_stop : pimp._y; track_down._y = pimp._y + ph; track_down._height = sh - track_down._y - dh; track_top._height = pimp._y - th; var newtarget_y:Number = maska._y -(pimp._y-pimp_start)*(targetway/pimpway); pimp.onEnterFrame = function () { target._y = Math.ceil(target._y +(newtarget_y - target._y)/4); target._y == newtarget_y ? delete pimp.onEnterFrame : null; } } // драг бегунка pimp.onPress = function () { this.startDrag(false,0,pimp_start,0,pimp_stop); this.onMouseMove = scrolling; } pimp.onRelease = pimp.onReleaseOutside = function () { this.stopDrag(); delete this.onMouseMove; } // кнопки top.onPress = function () { this.onEnterFrame = function () { pimp._y--; scrolling(); } } top.onRelease = top.onReleaseOutside = function () { delete this.onEnterFrame; } down.onPress = function () { this.onEnterFrame = function () { pimp._y++; scrolling(); } } down.onRelease = down.onReleaseOutside = function () { delete this.onEnterFrame; } // прокрутка колёсиком мыши pimp.onMouseWheel = function(delta) { this._y -= delta; scrolling(); } Mouse.addListener(pimp); // создаем прозрачные кнопки трека (кнопки быстрой перемотки) var track_top:MovieClip = scroller_mc.createEmptyMovieClip("tt",100); with(track_top){ moveTo(0,0); beginFill(0x00ff00, 0); lineTo(0,sh); lineTo(track._width, sh); lineTo(track._width,0); endFill(); } var track_down:MovieClip = track_top.duplicateMovieClip("td",110); // размещаем кнопки трека track_top._x = track_down._x = 0; track_top._y = th; track_top._height = 0; track_down._y = th + ph; track_down._height = sh - th - dh - ph; // нажатия на трек track_top.onPress = function () { // замедляющееся движение центра бегунка к мыши this.onEnterFrame = function () { // ускорение зависит от делителя pimp._y = Math.floor(pimp._y -(pimp._y + pc - scroller_mc._ymouse)/10); scrolling(); } } track_top.onRelease = track_top.onReleaseOutside = function () { delete this.onEnterFrame; } track_down.onPress = function () { // замедляющееся движение центра бегунка к мыши this.onEnterFrame = function () { // ускорение зависит от делителя pimp._y = Math.ceil(pimp._y +(scroller_mc._ymouse - pimp._y - pc)/10); scrolling(); } } track_down.onRelease = track_down.onReleaseOutside = function () { delete this.onEnterFrame; } // отменяем Руку на кнопках и бегунке pimp.useHandCursor = false; top.useHandCursor = false; down.useHandCursor = false; track_down.useHandCursor = false; track_top.useHandCursor = false; |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
// кнопки
top.onRollOver = function () {
this.onEnterFrame = function () {
pimp._y--;
scrolling();
}
}
top.onRollOut = function () {
delete this.onEnterFrame;
}
down.onRollOver = function () {
this.onEnterFrame = function () {
pimp._y++;
scrolling();
}
}
down.onRollOut = function () {
delete this.onEnterFrame;
}
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 116
|
Большое спасибо, Wolsh!
Отлично работает. То, что нужно. Я пробовал вот так перед тем, как спросить и ничего не работало :top.onRollOver = function () { this.onEnterFrame = function () { pimp._y--; scrolling(); } } top.onRollOver = top.onRollOut = function () { delete this.onEnterFrame; } down.onRollOver = function () { this.onEnterFrame = function () { pimp._y++; scrolling(); } } down.onRollOver = down.onRollOut = function () { delete this.onEnterFrame; } ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|