Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вопрос по onClipEvent (mouseDown) {} (http://www.flasher.ru/forum/showthread.php?t=28068)

wildman 05.03.2002 16:27

Вопрос по onClipEvent (mouseDown) {}
 
Вопрос как развязать это событие с другим клипом ???
Суть вот в чём:
Есть 2 мувика, если я на одном ставлю
onClipEvent (mouseDown) {
}
то это же событие срабатывает и на другом, как от этого уйти ???

lexass 05.03.2002 16:52

hitTest

wildman 05.03.2002 16:54

Хм, а не подскажешь как им пользоваться ???

Papa Karlo 05.03.2002 17:00

2wildman:
ты че то намудрил там, получается - если стоят два чела и одному дать под зад, то подпригнут оба :eek: Давай исходник.

lexass 05.03.2002 17:05

Цитата:

Оригинал написал(а) wildman
Хм, а не подскажешь как им пользоваться ???
Отчегож не подсказать? :D
ПОДСКАЖУ! ;)

Хелп почитай "F1"
т.е. RTFM
PS
там и поиск есть :cool: ;)

Papa Karlo 05.03.2002 17:10

А я добрее :D (сегодня ;) )

Синтаксис

anyMovieClip.hitTest(x, y, shapeFlag);
anyMovieClip.hitTest(target);
Аргументы

x x-координата хит-области на сцене.

y y-координата хит-области на сцене.

Координаты x и y определены в глобальном координатном пространстве.

target Хит-область, которая может пересекаться или перекрываться с anyMovieClip. target; обычно представляет собой кнопку или динамическое текстовое поле.

shapeFlag Булево значение, указывающее воспринимать ли всю форму (площадь) мувиклипа - (true) или только его границу (рамку) - (false). Этот аргумент может быть задан только в том случае, если хит-область идентифицирована использованием координат-аргументов x и y.

Описание

Метод; вычисляет пересечение или перекрытие anyMovieClip и хит-области, указанной через target или координаты-аргументы x и y.

1-ое использование: сравнивает координаты x и y формы или ограничивающей рамки заданного мувика, в зависимости от установки shapeFlag. Если shapeFlag установлен в true, то обрабатывается только область, фактически занятая мувиком на сцене, и, если x и y совмещаются с любой точкой, возвращается значение true. Это полезно для определения находится ли мувиклип внутри указанной хит-области или нет.

2-ое использование: вычисляет пересекаются/перекрываются ли границы (рамки) target и заданного мувиклипа, если да, то возвращает true.

Player

Flash 5 или выше.

Пример

Следующий пример использует hitTest со свойствами x_mouse и y_mouse для определения местонахождения мыши:

if (hitTest( _root._xmouse, _root._ymouse, false));
Следующий пример использует hitTest чтобы определить перекрываются/пересекаются ли мувики ball и square или нет:

if(_root.ball, hittest(_root.square)){
trace("ball intersects square");
}

Papa Karlo 05.03.2002 17:12

А я добрее :D :D :D (сегодня ;) )

Синтаксис

anyMovieClip.hitTest(x, y, shapeFlag);
anyMovieClip.hitTest(target);
Аргументы

x x-координата хит-области на сцене.

y y-координата хит-области на сцене.

Координаты x и y определены в глобальном координатном пространстве.

target Хит-область, которая может пересекаться или перекрываться с anyMovieClip. target; обычно представляет собой кнопку или динамическое текстовое поле.

shapeFlag Булево значение, указывающее воспринимать ли всю форму (площадь) мувиклипа - (true) или только его границу (рамку) - (false). Этот аргумент может быть задан только в том случае, если хит-область идентифицирована использованием координат-аргументов x и y.

Описание

Метод; вычисляет пересечение или перекрытие anyMovieClip и хит-области, указанной через target или координаты-аргументы x и y.

1-ое использование: сравнивает координаты x и y формы или ограничивающей рамки заданного мувика, в зависимости от установки shapeFlag. Если shapeFlag установлен в true, то обрабатывается только область, фактически занятая мувиком на сцене, и, если x и y совмещаются с любой точкой, возвращается значение true. Это полезно для определения находится ли мувиклип внутри указанной хит-области или нет.

2-ое использование: вычисляет пересекаются/перекрываются ли границы (рамки) target и заданного мувиклипа, если да, то возвращает true.

Player

Flash 5 или выше.

Пример

Следующий пример использует hitTest со свойствами x_mouse и y_mouse для определения местонахождения мыши:

if (hitTest( _root._xmouse, _root._ymouse, false));
Следующий пример использует hitTest чтобы определить перекрываются/пересекаются ли мувики ball и square или нет:

if(_root.ball, hittest(_root.square)){
trace("ball intersects square");
}

wildman 05.03.2002 17:13

Цитата:

Оригинал написал(а) Papa Karlo
2wildman:
ты че то намудрил там, получается - если стоят два чела и одному дать под зад, то подпригнут оба :eek: Давай исходник.

:D Всё очень просто:
именно так и есть если я говорю в одном клипе
onClipEvent(mouseUp){
...
}
то оно срабатывает везде !!!
Но если я делаю следующую вещь:
onClipEvent (mouseDown) {
if (hitTest(_root._xmouse, _root._ymouse)){
.......
}
}
То всё зашибись...
Вот такая история...
А чего исходник давать по моему и так всё ясно...
Ладно, спасибо!

lexass 05.03.2002 17:24

Ай молодца :)
разбирались недолго 1,5 часа :cool:
:D ;)

2 Papa Karlo
Цитата:

Давай исходник.
У меня тута исходничек на 70 метров,
а багу искать западло:(
Дык ты это, очень любишь на шару в чужом "Г.." покопаться?
Это сказано не в обиду. Но это не прально!
ЗЫ
Баги делают руки! И как правило эти же руки получают деньги
за то что делают баги!;)
Дык пусть они их и ищут :cool:
Во какой туфтологии я нагнал :)

Papa Karlo 05.03.2002 17:38

Никак ассенизатором обозвали... Нидождетесь :o .

lexass 05.03.2002 17:49

:D :D :D

ИМХО
Есть вопрос - есть ответ!
А типа я тут спер исходник, а разобраться немогу :mad:
Или сам понаписал, и непонимаю чего :mad:

2 Papa Karlo дык ассенизаторство тут нипричем
просто нестоит на это тратить время :cool:
Типа вот вам 30 кило кода в 300-х кадрах,
найдите мне где я условие непрально написал if(x=1)
:D ;)

Удач

Papa Karlo 05.03.2002 17:58

Цитата:

Есть 2 мувика, если я на одном ставлю
onClipEvent (mouseDown) {
}
то это же событие срабатывает и на другом
Мне просто стало интересно, как это может быть, если (по моей кривой логике) "на другом" ничего "не поставлено".

lexass 05.03.2002 18:10

Цитата:

Оригинал написал(а) Papa Karlo
как это может быть
.... "на другом" ничего "не поставлено".

Если постараться, то может ;)
но надо постараться :cool: :D
или написать на обоих onClipEvent (mouseDown) :mad:

wildman 05.03.2002 19:13

Цитата:

Оригинал написал(а) lexass

Если постараться, то может ;)
но надо постараться :cool: :D
или написать на обоих onClipEvent (mouseDown) :mad:

Ага, тогда только один срабатывает...
Ладно, если так уж сильно заинтересовал, могу быстро исходник состряпать...

wildman 05.03.2002 19:28

ну вот исходник
 
Вложений: 1
Поясню сразу:
Сщбытия onClipEvent стоят только в правом клипе, однако, при клике на левый мувик, тоже событие срабатывает...
а всё дело в том, что надо hitTest вставлять вот так:
onClipEvent{
if (hitTest(_root._xmouse, _root._ymouse)){
...
}
}
тогда события разделяются...
Вот собственно о чёмя и спрашивал. Ещё раз спасибо за помощь.

Papa Karlo 05.03.2002 19:41

Так ты и путаешься - onClipEvent (mouseDown) значит клик вообще, а не именно на мувике. Тут проще пихнуть в мув прозрачную кнопу и прописать, что надо. Но это значит, что оно сработает во всех экземплярах данного мувика. Во избежании: если тебе нужно, чтоб сработало только от правого, дай ему имя _right, и во вложенной кнопе пиши
on(press){
if(_name=="right"){то и то};
}
Но это не значит, что низя хитТэстом(), дело вкуса.


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

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