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

lizzard 04.08.2006 16:24

Глюки с координатами мыши
 
Проблема: определяются неверные координаты курсора мыши.
Суть: в основную сцену загружается новый клип, при наведении на который должен появиться всплывающий (в виде еще одного клипа) текст возле курсора мыши, но почему то он всегда появляется на границах этого клипа (на который мы наводим мышкой).
Вот код, который я написал внутри клипа, на который наводим мышкой:

Код:

this.useHandCursor = false;
this.onRollOver = function() {
  var timer = getTimer() + 1000;
  while(getTimer() < timer) // немного ждём
    continue;
  this.attachMovie('popup_text', 'pt', 100);
  this.pt._x = _xmouse;
  this.pt._y = _ymouse;
  this.pt.txt = "бла-бла-бла"; // txt - поле для текста в клипе popup_text
}
this.onRollOut = function() {
  this.pt.removeMovieClip();
}

Help, plz %)

vooparker 04.08.2006 16:39

_root._xmouse

lizzard 04.08.2006 17:18

При использовании _root._xmouse это выглядит еще более кривей, уже пробовал :(

KUZEN 04.08.2006 17:30

ты сначала реши какие координаты тебе нужны, твоего подгруженного мувика или основного

lizzard 04.08.2006 17:35

Мне нужно чтобы новый ролик появился возле курсора мыши

lizzard 06.08.2006 16:51

неучто никто не может помочь? :(

KUZEN 06.08.2006 23:41

this.attachMovie('popup_text', 'pt', 100,{_x:_root._xmouse, _y:_root._ymouse});

KPaul 07.08.2006 00:02

Думаю тебе поможет globalToLocal.

lizzard 07.08.2006 00:47

Вложений: 1
KUZEN, спасибо, но не помоглло %)

KPaul, а что это, можно по-конкретней? Я такой функции во встроенном справочнике не нашел...

P.S. прикрепил фаил, кому не лень - гляньте, плз, может, ошибка совсем не там, где я думаю %)

xity 07.08.2006 01:29

this.useHandCursor = false;
this.onRollOver=over;
this.onRollOut=out;
var time;
function over() {
time=setInterval(popup,1000);
}
function popup() {
attachMovie('popup_text', 'pt', 100);
pt._x = _xmouse;
pt._y = _ymouse;
pt.txt = "lizzard";
clearInterval(time);
}
function out() {
this.pt.removeMovieClip();
}

KUZEN 07.08.2006 01:46

Сноси код в своём мувике и пиши в первый кадр рута вот этот код

Код:

mc.useHandCursor = false;
mc.onRollOver = function() {
        _root.attachMovie('popup_text', 'pt', 100, {_x:_root._xmouse, _y:_root._ymouse});
        _root.pt.txt = "Памятник неизвестному воину. Выглядит довольно странно и необычно для этих мест...";
        //
        mc.onMouseMove = function() {
                _root.pt._x = _root._xmouse;
                _root.pt._y = _root._ymouse;
        };
};
mc.onRollOut = function() {
        _root.pt.removeMovieClip();
        delete this.onMouseMove;
};

а плавное появление делай програмно, допустим через tween

KPaul 07.08.2006 02:06

По ходу чё-то было связано с циклом while, лень разбираться. :)
Я бы не стал грузить систему аттачами, и в конкретном случае получилось примерно тоже самое что и в предыдущих постах, но только с _visible. Но всё же это old school, и лучше собрать полноценный компонент, примеров которых довольно много в сети. А нет желания использовать готовый компонент, например tooltip от Sephiroth? (http://www.sephiroth.it/file_detail.php?id=132)

mart.in 07.08.2006 07:42

Вообще лучше отказаться от написания скриптов в самих мувиках. Так скажем - правило хорошего тона программирования во Flash - писать скрипт в первом кадре, как предложил KUZEN. Но, как сказал KPaul, лучше собрать поноценный компонент, т.к. ты можешь его использовать и в других приложениях.

lizzard 08.08.2006 12:02

KUZEN, не совсем то и у меня почему то не работает %) В любом случае спасибо всем)) Вариант xity подошел, сенкс :)

KPaul, скорей всего :)) Вторую половину написанного про компоненты не понял, нуб я еще во флеше %)

mart.in, ну, основываюсь на примерах в книжке + идущих в комплекте со средой %)


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

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