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

Сандра 24.12.2007 20:27

Как сделать так, чтобы событие происходило только при щелчке на пустой области?
 
Добрый день,

на сцене существует экземпляр клипа ClickCatcher, который выглядит примерно так:
Код:

class ClickCatcher extends MovieClip {
var clipNum:Number = 0;

function ClickCatcher(){
super();
}

function onMouseUp(){
trace("creating new movie clip");
var clip:MovieClip = _root.attachMovie("MyClip", "clip" + clipNum, _root.getNextHighestDepth());
clip._x = _root._xmouse;
clip._y = _root._ymouse;
clipNum++;
}
}

Задача простая - создать экземпляр нового клипа в том месте, где щелкает пользователь. У меня получилось, но почему-то это событие onMouseUp также происходит и на созданных таким образом клипах. Как сделать так, чтобы событие происходило только при щелчке на пустой области (а пустая область это экземпляр ClickCatcher) и не происходило на вновь созданных клипах?

chingachgoog 24.12.2007 20:36

Видимо вопрос в том, чтобы приаттаченные клипы не залезали друг на друга? Тогда надо при событии onMouseUp проверять hitTest со всеми мувиками на _root и если не пересекается, то аттачить.
Или еще удобнее - аттачить и тут же проверять hitTest, если пересекается - то удалить аттач (надо только проверить, не требуется ли переход головки, для корректной работы hitTest).

udaaff 24.12.2007 20:40

onMouseUp -- глобальное событие. Можно использовать вместо onMouseUp, onRelease. У мувиков, которые будут над экземепляром ClickCatcher, прописать:
Код:

onRelease = null;
useHandCursor = false;



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

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