PDA

Просмотр полной версии : Вопрос по onClipEvent (mouseDown) {}


wildman
05.03.2002, 16:27
Вопрос как развязать это событие с другим клипом ???
Суть вот в чём:
Есть 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
Поясню сразу:
Сщбытия onClipEvent стоят только в правом клипе, однако, при клике на левый мувик, тоже событие срабатывает...
а всё дело в том, что надо hitTest вставлять вот так:
onClipEvent{
if (hitTest(_root._xmouse, _root._ymouse)){
...
}
}
тогда события разделяются...
Вот собственно о чёмя и спрашивал. Ещё раз спасибо за помощь.

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