Форум 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)
-   -   Поддерживает ли Flash колесико мышки в AS? (http://www.flasher.ru/forum/showthread.php?t=117069)

LOST DEMON 17.10.2008 21:09

Поддерживает ли Flash колесико мышки в AS?
 
Может кто знает, наверна нет:confused:, но вдруг мона как-нибудь, ведь прикольно было бы там например "что-то типа меню" прокручивать колесиком иль другую фичу:)

Skoder 17.10.2008 21:36

Код:

var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheel) {
    if (wheel>0) {
    trace("Вы крутите колесо вверх");
    }
    else {
    trace("Вы крутите колесо вниз");
    }
}
Mouse.addListener(mouseListener);


LOST DEMON 17.10.2008 21:43

Спасибо за инфу, буду знать теперь=)

openlex 18.10.2008 10:40

Подскажите пожалуйста, как сделать полноценный скрол. Чтобы и роликом и перетаскиванием и наведением на любую точку скрола. Чтоб как норм скрол винды, но с нашим дизайном.
Я нашёл как сделать скрол перетаскиванием :

Код:

Stage.scaleMode = "noScale";
_root._quality = "BEST";
//
//Сегодня мы разберём один из видов скроллинга во Flash. Это будет скроллинг не
//для текстовых полей (TextField), а для Movie Clip'ов, внутри которых может быть
//любое содержимое.
//Принцип таков:
//1) На объект, который нужно будет прокручивать накладывается маска.
//2) Объект, который мы "скроллируем" (прокручиваем) сдвигается по оси Y, если
//это вертикальный скроллинг, или по оси X, если это горизонтальный скроллинг.
//Таким образом, при движении, будет определённая часть обхекта будет открываться,
//а определённая скрываться. Та, что будет находится "под" маской, будет видна,
//та что будет выходить за пределы маски, будет скрыта.
//
//Накладываем маску на объект.
obj_mc.setMask(mask_mc);
//Находим разницу между общей высотой обхекта и высотой "видимой части", видимая
//часть у нас будет составлять площадь маски, и, соответственно, высота видимой
//части - это будет высота маски.
var varDif:Number = obj_mc._height-mask_mc._height;
//Создаём событие на нажатие кнопки скроллинга
scroll_mc.onPress = function() {
        //Переходим во второй кадр скроллинга, чтобы сделать нажатие наглядней
        this.gotoAndStop(2);
        //Начинаем перетаскивание кнопки скроллинга
        //startDrag(lockCenter,left,top,right,bottom);
        //lockCenter - может принимать значения true или false, если lockCenter равен
        //true, то центр перетаскиваемого объекта всегда совпадать с курсором мышки.
        //Если false, то происходит обычное перетаскиавание, куда мышкой клацнули,
        //за то место и потянули.
        //left - координата левой границы, за которую объект выходить не будет;
        //top - координата верхней границы;
        //right - координата правой границы;
        //bottom - координата нижней границы.
        //Если вы хотите, что объект можно было перетаскивать безо всяких ограничений,
        //то можете просто не заполнять эти параметры. Если вам нужно, чтобы по
        //вертикали объект нельзя было передвигать, то значения top и bottom должны
        //быть одинаковыми. Если хотите, чтобы обхект нельзя было перетаскивать по
        //горизонтали, то left и right должны быть равны друг другу.
        //Кстати все эти параметры являются не обязательными, то есть, вы можете
        //просто записать startDrag() и перетаскивание объекта всёравно включится,
        //и никаких ограничений к этому перетаскиванию применено не будет.
        this.startDrag(false,this._x,120,this._x,885);
        //Создаём событие на ДВИЖЕНИЕ МЫШКИ.
        this.onMouseMove = function() {
                //Пропорционально тому, на сколько скроллинг сместился ниже начала оси Y
                //объект, который мы прокручиваем, должен смещаться вверх.
                _root.obj_mc._y = 120-_root.varDif*((this._y-120)/765);
        };
};
//После того, как пользователь отпустил кнопку мышки, мы должны остановить
//прокручивание.
scroll_mc.onRelease = scroll_mc.onReleaseOutside=function () {
        //Переходим на первый кадр скроллинга.
        this.gotoAndStop(1);
        //Останавливаем перетаскивание скроллинга
        this.stopDrag();
        //Удаляем событие на ДВИЖЕНИЕ МЫШКИ, с помощью которого и происходило
        //прокручивание объекта.
        delete this.onMouseMove;
};

Но как скролом и нажатием? чтобы всё в одном скрипте.

LOST DEMON 30.10.2008 23:33

Люди, чего-то у меня не получается, со звуком фигня какая-то,
короче задаю след кодом громкость некоторому звуку(предварительно он по всем правилам объявлен)
Код:

var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheel) {
  if (wheel>0) {
  xvolume=xvolume+75;
  мойзвук.setVolume(xvolume);
 
 
    }
  else {
    xvolume=xvolume-75;
        мойзвук.setVolume(xvolume);
       
       
    }
       
       
}
Mouse.addListener(mouseListener);

громкость меняется, но как-то криво, к примеру колесико вверх- она сразу увеличится на 150, а затем если еще вверх, то ничего, если вниз, то сразу на -250, а потом тоже не уменьшается, и все в подобном роде, воообщем лагает,
я ламо самому не докумекать=)

Валиант 31.10.2008 11:20

Если это весь код, то могу предположить что нужно сначала задать переменной xvolume какое-то значение, либо xvolume = 0, либо присвоить уровень звука на данный момент. И вообще если что то не получаеться проверяйте функцией trace();
Код:

if (wheel>0) {
  xvolume=xvolume+75;
  trace(xvolume);
  мойзвук.setVolume(xvolume);

Это даст вам понять что не так и увеличивается ли переменная вообще. В вашем случае она будет равна NaN.

Wolsh 31.10.2008 12:01

Во-во, заодно узнаете, сколько раз возникает событие MouseWheel за одно движение Вашего пальца по колесику. Было бы еще неплохо разобраться, бывает ли громкость меньше 0 и больше 100, прежде чем задавать такой обалденный шаг регулятору.
----------
openlex - посмотрите мой скроллер http://flasher.ru/forum/showthread.php?t=111891


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

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