Форум 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)
-   -   mouse.show, mouse.hide (http://www.flasher.ru/forum/showthread.php?t=82208)

Perelomov 07.07.2006 00:49

mouse.show, mouse.hide
 
Создал мувиклип для скрытия мышки, если она не передвигается. примерный код такой:

1 кадр:
Код:

x_mouse = _xmouse;
n-ный кадр:
Код:

if (x_mouse == _xmouse) {
        Mouse.hide();
} else {
        Mouse.show();
}

Код недоработанный, но проблема не в этом, а в том, что после того как я вставил этот клип на сцену, у меня начали мигать все присутствующие кнопки. То исчезнут, то через секунду снова появятся.
Без описанного выше клипа все работает ровно.

Подскажите пожалуйста, ЭТО ВООБЩЕ МОЖЕТ БЫТЬ КАК-ТО СВЯЗАНО????
:wacko:

7thsky™ 07.07.2006 00:57

нажать f2 посмотреть что тебе выдало в output и посмотреть где ты сделал рекурсию

sem1313 07.07.2006 04:31

А не проще ли сделать через onMouseMove?...

kayama 07.07.2006 10:38

Цитата:

Сообщение от sem1313
А не проще ли сделать через onMouseMove?...

По ходу он без события хочет...
Я предлагаю сделать прозрачный мув, при попадании крусора в который будет скрываться курсор, по идее на все оставльные элменты это повлиять не должно.

motor4ik 07.07.2006 10:46

а что мешает сделать так?

записывать x мыши, и проверять через сет интрвал с заданым периодом, если равен прятать, если не равен показывать, вот и все )))))

Perelomov 07.07.2006 10:54

Цитата:

Сообщение от kayama
По ходу он без события хочет...
Я предлагаю сделать прозрачный мув, при попадании крусора в который будет скрываться курсор, по идее на все оставльные элменты это повлиять не должно.

Мне нужно чтобы курсор пропадал через некоторый промежуток времени, если мышка не была перемещена, как в некоторых видео-плеерах (например, BSPlayer). Этот вариант здесь не совсем подходит. Я про свой клип тоже думал что на другие элементы он влиять не должен. Вот влияет.

Perelomov 07.07.2006 10:58

Цитата:

Сообщение от motor4ik
а что мешает сделать так?

записывать x мыши, и проверять через сет интрвал с заданым периодом, если равен прятать, если не равен показывать, вот и все )))))

Так вообще-то я именно так и сделал. Проблема не в алгоритме, а в том что кнопки мигают! Чо они мигают? Они вообще никак не связаны, вот в чем беда!
:(

Morozov1982 07.07.2006 11:00

А можно исходничек глянуть? :)

motor4ik 07.07.2006 11:36

все верно ,мы не коперфильды, выкладывай исходник иначе помоч не можем, или код выкладывай после которого начинает мигать )

iNils 07.07.2006 12:12

Я бы сделал так и не парился.
Код:

this.onMouseMove = function () {
        Mouse.show ();
        clearInterval (idmove);
        _global.idmove = setInterval (function () {
                clearInterval (idmove);
                Mouse.hide ();
        }, 2000);
};


Perelomov 07.07.2006 12:22

Цитата:

Сообщение от iNils
Я бы сделал так и не парился.
Код:

this.onMouseMove = function () {
        Mouse.show ();
        clearInterval (idmove);
        _global.idmove = setInterval (function () {
                clearInterval (idmove);
                Mouse.hide ();
        }, 2000);
};


жаль, но половину из этих функций я вижу в первые. Но на заметочку возьму и разберусь. Спасиба.

Perelomov 07.07.2006 12:26

Все, ребята, отбой! Кнопки мигали потому что видимо Flash как то менял глубину картинки, которая у меня перекрывала кнопки. Все исправил с помощью команды:
mx.behaviors.DepthControl.bringToFront(_root.interface_prog);
До сих пор не знаю как это связано с mouse.hide, ну да ладно...

Если кому интересно привожу код доделанного скрывателя кнопки мыши, если таковая не перемещается.

1 кадр:
Код:

x_mouse = _xmouse;
loop = 0;

3-ий кадр:
Код:

if (x_mouse != _xmouse) {
        Mouse.show();
}

// mouse_timer - это поле для ввода интервала после которого скрывается мышка, задается в сек.
// значение 16 зависит от fps.
if (parseInt(_root.interface_prog.mouse_timer) == (loop/16)){
        if (x_mouse == _xmouse) {
                Mouse.hide();
        }
} else {
        gotoAndPlay(2);
}

// это для того чтобы при изменении mouse_timer с большего на меньший, все работало корректно
if((loop/16) > parseInt(_root.interface_prog.mouse_timer)) {
        loop = 0;
}
loop++;

Может у кого есть какие-то дополнения или исправления? Жду предложений.

Perelomov 07.07.2006 12:33

Цитата:

Сообщение от iNils
Я бы сделал так и не парился.
Код:

this.onMouseMove = function () {
        Mouse.show ();
        clearInterval (idmove);
        _global.idmove = setInterval (function () {
                clearInterval (idmove);
                Mouse.hide ();
        }, 2000);
};


iNils - ГЕНИЙ!
:rolleyes:


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

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