Просмотр полной версии : Колесо мыши, не прослушивается ((
в чистом fla AS3.0 файле, прописываю
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel)
function wheel(Event:Mouse):void
{
trace("mouseWheel");
}
stage.addEventListener(MouseEvent.CLICK, wheel2)
function wheel2(Event:MouseEvent):void
{
trace("mouseClick");
}
на клик реагирует, трейсит текст ... на колесо ноль внимания!
Уже прочел все хелпы, облазил все форумы.
То ли лыжи не едут ... толи я ...
Помогите пожалуйста!
Заранее благодарен.
Внимательнее надо относить к коду.
function wheel(Event:Mouse):void // здесь ошибка. Нужно писать MouseEvent, а не Mouse
honest_man
17.04.2011, 00:31
Странняк, должно было выбивать несоответствие типов на этапе выполнения...
goodguy и так и так не пашет, если бы было все так просто ;)
Зато работает вот так:
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel)
function wheel(e:MouseEvent):void
{
trace("mouseWheel");
}
Только перед использованием желательно чтобы окно получило фокус.
Хотя странно... И с Event тоже работает.
Вот работающий код. Не рекомендуется называть параметры слушателей также как класс событий. Пишите названия параметров со строчных букв.
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class TestProject extends Sprite
{
public function TestProject():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel);
}
private function wheel(event:MouseEvent):void
{
trace("La-la");
}
}
}
goodguy и так и так не пашет, если бы было все так просто ;)
Все на самом деле и есть так просто ;)
Хотя странно... И с Event тоже работает.
MAPUTO, все логично. MouseEvent расширяет Event.
redexer, что-то мне подсказывает, что колесо ловит FlashIDE. Проверьте флешку отдельно.
honest_man
17.04.2011, 12:24
goodguy и так и так не пашет, если бы было все так просто ;)
Что не работает? Где не работает? Вот, вполне работающий код, как написал goodguy:
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel)
function wheel(Event:MouseEvent):void
{
trace("mouseWheel");
}
stage.addEventListener(MouseEvent.CLICK, wheel2)
function wheel2(Event:MouseEvent):void
{
trace("mouseClick");
}
То что вы параметры написали с заглавных это конечно плохо и может запутать, но компилятору какбы накласть, своя собственная область видимости у приемника, что хочет то и делает. Можете параметры даже MovieClip*ами назвать.
mikhailk
17.04.2011, 12:38
Хотя странно... И с Event тоже работает.
попробуйте снять дельту и тут же увидите разницу :)
КорДум, mikhailk, странно не то что у меня работает, а то что у redexer не работает.
попробуйте снять дельту и тут же увидите разницу :)
var _delta:int = (event as MouseEvent).delta;
;)
Зачем создавать такую конструкцию, когда проще сразу указать MouseEvent в качестве параметра?
mikhailk
18.04.2011, 11:50
КорДум, :)
Блин, может это какой то глюк именно у меня О_о...
Беру открываю новую флешку, тупо копи паст ваших скриптов (хотя такие же писал, не работало).
Клик работает, колесо нет )))))) я в панике!
Если это поможет у меня Adobe Flash CS5, Win 7 ... да, и само по себе колесо мыши рабочее ))) в винде, браузерах и прочем софте работает.
Судя по всему проблема не в коде... может кто то сталкивался?
Zebestov
19.04.2011, 20:12
Я тут поменял мышь, и к ней идет своя настройка колесика, чтобы не нужно было кликать на объект для фокусировки — скролл автоматически применяется к объекту непосредственно под курсором. Так вот с такими настройками колесо прекращает свою работу во Flash-е даже если кликнуть по мувику.
Не оно?
Проверьте работу колеса в стандалон плеере, а не в том, у которого на фоне висит FlashIDE, говорю же, что она перехватывает.
Она не перехватывает колесо
А проверим ;) Полтергейст неуловим, но мало ли.
Все, разобрался )) точнее нет, не разобрался, у меня все равно траблы со скролом, но зато на других компах все ок. Плохо скролится (медленно) не так как обычные html страницы ... но все же скролиться.
2_Zebestov дров никаких не стоит мышь MS Explorer 4.0 проводная )), и кстати заработало, вообще без всякого прописывания, но ооочень плохо, нужно дофига оборотов делать что бы он хотя бы на строчку прокуртил.
redexer, а мышь и скролинг тут при чем? :-D Наверное параметры в программе поменять надо на бо'льшие значения.
redexer, вообще-то свойство delta 3 и -3 созданы лишь для определения стороны вращения колеса, а то, на сколько контент будет прокручиваться (или не прокручиваться) при событии колеса нужно прописывать отдельно
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.