Просмотр полной версии : Поддерживает ли Flash колесико мышки в AS?
LOST DEMON
17.10.2008, 21:09
Может кто знает, наверна нет:confused:, но вдруг мона как-нибудь, ведь прикольно было бы там например "что-то типа меню" прокручивать колесиком иль другую фичу:)
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
Спасибо за инфу, буду знать теперь=)
Подскажите пожалуйста, как сделать полноценный скрол. Чтобы и роликом и перетаскиванием и наведением на любую точку скрола. Чтоб как норм скрол винды, но с нашим дизайном.
Я нашёл как сделать скрол перетаскиванием :
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, а потом тоже не уменьшается, и все в подобном роде, воообщем лагает,
я ламо самому не докумекать=)
Если это весь код, то могу предположить что нужно сначала задать переменной xvolume какое-то значение, либо xvolume = 0, либо присвоить уровень звука на данный момент. И вообще если что то не получаеться проверяйте функцией trace();
if (wheel>0) {
xvolume=xvolume+75;
trace(xvolume);
мойзвук.setVolume(xvolume);
Это даст вам понять что не так и увеличивается ли переменная вообще. В вашем случае она будет равна NaN.
Во-во, заодно узнаете, сколько раз возникает событие MouseWheel за одно движение Вашего пальца по колесику. Было бы еще неплохо разобраться, бывает ли громкость меньше 0 и больше 100, прежде чем задавать такой обалденный шаг регулятору.
----------
openlex (http://flasher.ru/forum/member.php?u=58849) - посмотрите мой скроллер http://flasher.ru/forum/showthread.php?t=111891
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.