Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Вложенная кнопка не реагирует на события (http://www.flasher.ru/forum/showthread.php?t=39223)

Minras 01.11.2002 20:44

Вложенная кнопка не реагирует на события
 
Есть несколько вложенных друг в друга муви-клипов и в конце-концов в один из них вложена кнопка, так вот она нереагирует на события от мыши, в том числе изменение формы, прописанное в Over и Down, не совершается.
Что можно с этим сделать?

Labuch 01.11.2002 21:15

А у тебя пути правильно прописаны?
OnRelease
_root.clip1.clip2 и далее.
А то кнопка работает только для последнего мувика.

Minras 01.11.2002 21:37

Дык если я для кнопки прописываю
Код:

on(release){
geturl('microsoft.com')
}

или trace(333), то пути имхо не нужны.
Дело в том, что кнопка не реагирует на события.
Совсем.
Могут ли муви-клипы, в которых она находится, как-то не пропускать события дальше, если они сами испульзуют rollOver/Out?

sergwizard 01.11.2002 23:03

Во-первых, такое
Код:

on(release){
geturl('microsoft.com')
}

не сработает даже на нормальной кнопке
У тебя нет относительного пути к Microsoft.com. Надо так:
Код:

on(release){
getURL("http://microsoft.com");
}

Во-вторых. События rollOver/Out не применимы к МС. Клип, который испульзует rollOver/Out, сам превращается в кнопку. То есть он становится listener(ом) этих событий. А события быстрее слышит тот, кто ближе к ним находится.
А если клип реагирует на "правильные" события мыши, как то: onMouseDown/Up/Move, то он становится listener(ом) этих событий, и – естественно – кнопке оставляет ее события. Конечно, если она успеет.
Например, у нас есть кнопка в клипе "qqq". Если мы напишем такой скрипт
Код:

qqq.onMouseDown = function(){
                qqq._visible = false;
}

то кнопка будет реагировать на on(rollOver) и on(rollOut), но на on(press) и на on(release) – не успеет. Так как это событие перехватит клип "qqq".

DUDE 02.11.2002 00:16

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

Minras 02.11.2002 14:15

Благодарю, милорды.
Но свойство MovieClip.trackAsMenu имхо должно позволять вложенным объектам отлавливать события мышки.
Или я не прав?

Если кнопка Butt вложена в клип MC и для МС прописать
Код:

onClipEvent(load){
this.trackAsMenu=true;
}

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

sergwizard 02.11.2002 16:23

Советую внимательно читать ответы. Повторяю:
А события быстрее слышит тот, кто ближе к ним находится.
Вот это:
Код:

onClipEvent(load){
this.trackAsMenu=true;
}

превращает твой МС в listener (слушателя) событий, которые кнопка ловит по умолчанию. И теперь, по пути к кнопке эти события перехватываются клипом МС. Но не все, а только те которые ты сам позволяешь. Если позволишь клипу отлавливать событие on(release), то кнопке оно уже будет недоступно. Хоть это ты понимаешь? Вообще интересно, для чего эти извращения? Цель какая?
И еще:
Я заметил у тебя явную тягу к тавтологиям. Как в программировании – кнопка в кнопке, так и в письме – "по моему скромному имхо". Ты, наверное так и говоришь: "Здравствуйте, меня зовут май нэйм из Минрас". Тавтология – признак неграмотности.

Minras 02.11.2002 18:53

Месир, я понял, что события перехватываются до кнопки.
Вопрос в том и состоит - как их всё же отловить?
Так, чтобы события обрабатывались и мувиком и кнопкой.

ПС: я знаю, что такое имхо. Тавтология бывает сознательно используемой.

sergwizard 02.11.2002 20:25

Я у тебя не просто так спросил, какая цель? Зная цель, легче искать пути решения задачи.


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

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