Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   MOUSE_WHELL не работает в FireFox (http://www.flasher.ru/forum/showthread.php?t=196439)

fduch 24.03.2013 20:14

MOUSE_WHELL не работает в FireFox
 
Код AS3:

cont.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);

Код AS3:

function scroll(e:MouseEvent){
trace(e);
}

Работает в ИЕ, хроме.
В ФФ не пашет.
Как бороться?

Добавлено через 2 минуты
зы: Я помню, что когда спрашивал в прошлый рас про "перехватывание ролика браузером", вы посовытовали воспользоваться ФИКсом, который писал _етс, но нет ли другого способа, косабельно конкретно косяка с ФФ?

ZicoRio 24.03.2013 23:39

Прилипите прослушку к stage - должна заработать полюбому,
хотя все это странно - у меня скроллится меню как положено.
И попробуйте вместо trace(e) - что-нибудь наглядно-визуальное, возможно-таки все работает.

fduch 26.03.2013 20:23

Трасе е это я просто для упрощения на форуме написал, процедура скролит список вниз и вверх.
Прилипил к сцене(хотя мне этот вариант не подходит, так как находясь над определенным контейнером, должны вызываться разные функции).
Непашет.

ZicoRio 27.03.2013 00:09

Еще раз - вместо trace(e) положите что-нибудь точно работающее на 100% (не ваши процедуры)
Нужно удостовериться что событие генерится.
Попробуйте изменить название функции scroll или еще что - в FF все должно работать, похоже дело
в какой-то не явной мелочи.

fduch 27.03.2013 20:39

Оно 100% работает! Во всех браузерах, кроме ФФ, повесил на эту же функцию кнопку ф1, оно вызывается и работает.
Неработает только ролик и только в ФФ
Переименовал функция не работает.

Написал отдально прогу, которая только и делает что опрашивает ролик и выводит текст.
Код AS3:

if(!e){tf.text="qq";}
if(e == null){tf.text="ww";}
tf.text=" "+e;}

В фф ролик вообще игнориться.

iflamberg 27.03.2013 20:44

Используйте http://etcs.ru/blog/as3/mousewheel_v11_update/

ZicoRio 28.03.2013 02:31

Какая ось, версия FF и версия Flash Player'a?

fduch 28.03.2013 23:25

Тестил под 7сп1 под ХПсп3 фф 19.0.2 фп 11

ZicoRio 29.03.2013 00:34

Ну как бы чудеса в решете.
У меня XP SP3 FF 19.0.2 - во всех меню своего приложения использую
прокрутку мышью - все работает как часы (в принципе не работает только в QtWebKit).
Вам нужно, видимо, вдумчиво по коду пройтись, настройки размещения
флешки на html странице рассмотреть поближе, возможно настройки браузера какие
покрутить (возможно переустановить), вобщем взять себя в руки и еще раз шаг за шагом
все проверить.
Терпения и удачи.

fduch 29.03.2013 22:01

Давайте пойдем вашим путем)))
вот ссылочка http://bjiactb.60ru.com/test.html потестите ролик в фф. ( у меня не работает)
вот код:
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.events.MouseEvent;
        import flash.text.TextField;
 
        /**
        * ...
        * @author BJIACTb
        */

        public class Main extends Sprite
        {
 
                public var tf:TextField = new TextField();
 
                public var xx:int = 100;
                public var yy:int = 100;
 
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
 
                        tf.x = xx;                        tf.y = yy;
                        tf.border = true;        tf.text = "11111";
 
                        addChild(tf);
 
                        stage.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);
 
                }
 
                function scroll (e:MouseEvent) {
 
                        if (e.delta > 0) { yy++; }
                        if (e.delta < 0) { yy--; }
 
                        tf.x = xx;                        tf.y = yy;
                        tf.border = true;        tf.text = "11111";
                        addChild(tf);
                }
 
        }
 
}

Добавлено через 1 минуту
зы: На соседнем компе в ФФ тоже не пашет, так что переустанавливать чтото не имеет смысла.

Добавлено через 41 минуту
Прикрутил ЕТСовский фикс, но как то криво....не работает у меня, попровте плс.
Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
        import flash.events.KeyboardEvent;
 
    import ru.etsc.ui.MouseWheel;
 
 
    [SWF(width = "400", height = "300")]
 
 
    public class Main extends Sprite {
 
                public var tf:TextField = new TextField();
                public var xx = 100;
                public var yy = 100;
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
 
 
                        tf.x = xx;                        tf.y = yy;
                        tf.border = true;        tf.text = "11111";
 
                        addChild(tf);
 
                        stage.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);
 
 
 
                        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey);
 
 
        }
 
 
                        function onKey(evt:KeyboardEvent):void
                        {
                                if (evt.keyCode == 32 || evt.keyCode == 13) {
                                        handler_click();
                                }
                        }
 
                function scroll (e:MouseEvent) {
 
                        if (e.delta > 0) { yy++; }
                        if (e.delta < 0) { yy--; }
 
                        tf.x = xx;                        tf.y = yy;
                        tf.border = true;        tf.text = "11111";
                        addChild(tf);
                }
    //    private function handler_click(event:Event):void {
        private function handler_click():void {
            if (MouseWheel.captured) {
                MouseWheel.release();
            } else {
                MouseWheel.capture();
            }
 
            //this._field.text = 'Mouse wheel ' + (MouseWheel.captured ? 'captured' : 'released');
        }
    }
}



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

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