Форум 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=92061)

Zanha 14.02.2007 18:23

Мой курсор
 
Вложений: 1
Я пробую сделать курсор, который, во-первых, при наведении на объект, меняет свой вид и во-вторых, сам объект выделяется. Всё, почти работает, но при медленном наведении на один объект,иногда подсвечиваются сразу два.
А мне хочется 100% адекватный курсор.
Полагаю, что в данном случае проще просмотреть
исходник.(10,7 Кб)
Для тех, кто предпочитает смотреть код:

Код:

strela.onEnterFrame = function() {
        this._x = _xmouse;
        this._y = _ymouse;
};
K.onEnterFrame = function() {
        i = 1;
        while (i == 1) {
                i = 2;
                if (strela.gran1.hitTest(Obekt1) || strela.gran2.hitTest(Obekt1) || strela.gran3.hitTest(Obekt1) || strela.gran4.hitTest(Obekt1)) {
                        strela.gotoAndStop(2);
                        // Меняет внешность курсора
                        Obekt1.vdlLamp.gotoAndPlay(2);
                        //Меняет внешность объекта
                        onMouseDown = function () {
                                Obekt1.play();
                                //При клике объект реагирует
                        };
                        break;
                }
                //Далее аналогичный алгоритм для 2-х остальных объектов   
                if (strela.gran1.hitTest(Obekt2) || strela.gran2.hitTest(Obekt2) || strela.gran3.hitTest(muzik) || strela.gran4.hitTest(Obekt2)) {
                        strela.gotoAndStop(2);
                        Obekt2.vdMaf.gotoAndStop(2);
                        onMouseDown = function () {
                                Obekt2.play();
                        };
                        break;
                }
                if (strela.gran1.hitTest(Obekt3) || strela.gran2.hitTest(Obekt3) || strela.gran3.hitTest(Obekt3) || strela.gran4.hitTest(Obekt3)) {
                        strela.gotoAndStop(2);
                        Obekt3.vdlKoshka.gotoAndStop(2);
                        onMouseDown = function () {
                                Obekt3.play();
                        };
                        break;
                }
                // Если курсор ничего не касается, то-   
                onMouseDown = function () {
                };
                Obekt2.vdMaf.gotoAndStop(1);
                strela.gotoAndStop(1);
                Obekt1.vdlLamp.gotoAndPlay(1);
                Obekt3.vdlKoshka.gotoAndStop(1);
        }
};

[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

aksios 14.02.2007 18:49

Внутрь курсора положить еще один объект размером 1 пиксель и уже для него пользовать hitTest.

LeXi42006 14.02.2007 19:05

А чем onRollOver не устраивает?

Zanha 15.02.2007 17:09

Нужно сделать что бы увеличилась активная зона курсора.
Код работает, но с указанным выше глюком. Подскажите,
как решить такую задачу.

LeXi42006 15.02.2007 22:17

Вложений: 1
Надеюсь, это подойдет?

Zanha 16.02.2007 16:00

Да, это прошло. Спасибо, за помощь.
И в то же время нужно что бы когда курсор любой частью большого
острия пересекается с объектом - прикосновение состоялось.
Самое загадочное в моём коде, заключается в следующем.
Команда для мыши
Код:

onMouseDown = function ( )  { Obekt1.play(); };
и для выделения предмета
Код:

Obekt2.vdMaf.gotoAndStop(2);
написаны рядом, код для мыши работает прилично, код для выделения
глюкавит. Что странно.

LeXi42006 16.02.2007 16:42

Исходник выкладывайте и пишите что не так подробно

Zanha 17.02.2007 01:40

Вложений: 1
исходник

Когда наводим мышь на Obekt2, иногда выделяется Obekt1.


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

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