Форум 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)
-   -   Средний клик (http://www.flasher.ru/forum/showthread.php?t=158701)

LanSelven 22.06.2011 15:43

Средний клик
 
Как реализовать действие по клику третьей (средней, колесиком короче) кнопкой мыши?
К примеру по клику левой кнопки мыши вот:
Код AS1/AS2:

btn.onRelease = function() {}

А нужно средней. :)

vivado 22.06.2011 15:56

вот наткнулся
 
Можно попробовать использовать ASnative коды, например:

Код AS1/AS2:

this.onEnterFrame = function() {
if (ASnative(800,2)(4)) {
 trace("Cредняя кнопка нажата");
}
}


LanSelven 22.06.2011 16:16

Дело в том, что нужно отразить нажатие на опредлеенную кнопку колесиком мышки, а не сам факт нажатия колесика. :(

vivado 22.06.2011 16:39

Ну тогда делаешь доп условие например hitTest

LanSelven 22.06.2011 18:26

Самоубийство окнечно о_О

Добавлено через 1 минуту
Но вариант.
Спасибо

Добавлено через 21 час 31 минуту
Удалось осуществить таким образом:
Код AS1/AS2:

re_click = false;
in_url = false;
this.onEnterFrame = function() {
        middle_click = false;
        buttoned = false;
        num_url = o_mouse(); //o_mouse - сункция проверки того, находится ли курсор на кнопке.
        //Если находится, то возвращает номер кнопки и in_url = true. Если нет задает in_url=false
        if ((ASnative(800, 2)(4)) and (in_url)) {
                buttoned = true;
                if (!re_click) {
                        middle_click = true;
                }
        }
        if ((middle_click) or (re_click)) {
                re_click = true;
                if (!buttoned) {
                        geturl = true;
                }
        }
        if (geturl) {
                re_click = false;
                getURL(_root['url_'+num_url], '_blank');
        }
};

Добавлено через 21 час 33 минуты
Привер, как может выглядеть o_mouse
Код AS1/AS2:

function o_mouse() {
        m_r = 0;
        x_m = _xmouse;
        y_m = _ymouse;
        if ((x_m>=start_x) and (x_m<=over_x)) {
                m_r++;
        }
        if ((y_m>=start_y) and (y_m<=over_y)) {
                m_r++;
        }
        if (m_r==2) {
                num_m = 1;
                return num_m;
        } else {
                in_url = false;
        }
}



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

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