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

phpshnik 06.04.2006 15:02

Остлеживание событий кнопок, встроенных в клип.
 
Добрый день почтенной публике.
Мой вопрос заключается в следующем:

я нарисовал клип, в который вставил кнопку, но дальше, куда бы я не пытался вставить код обработки кнопки, он не работает. думаю, люди, разбирающиеся в Action Script быстрее поймут проблему кода, рассматривая его своими глазами, чем мои невнятные объяснения, потому вот исходник:

http://www.nyagantel.ru/tmp/menu2.rar

всплывающий блок содержит кнопку (Link click...), привязать код к которой у меня не получается (под "привязать код" я подразамеваю обработчики on (rollOver), on (press) и пр.

Друзья, тем, кто хочет послать меня сразу в... хелпы, хочу сказать, что они могут не утруждать себя написанием ответа - у меня есть 2 книги по флешу и одна огромная по Action Script. Дело не втом, что мне в падлу все это читать (все это я активно читаю), дело в том, что я не совсем понимаю логику взаимодействия объектов во Флеше, и как следствие логику работы самого кода. Я очень не плохо знаю VB 6.0 и РНР (могу помочь советом, если кому надо по этим языкам), но это знание мне вот очень мало помогает в освоении Action Script. Так что я буду очень признателен за объяснение, что (и главное ПОЧЕМУ) именно так надо делать т никак по другому.

Заранее благодарю за внимание и участвие.

Antares 06.04.2006 15:06

Код:

// Код помещать В КАДР, помещение кода на объекты -- это страшный грех
myButton.onRelease = function()
{
    // Just for example
    getURL( "http://www.novemberain.com/" );
}


phpshnik 06.04.2006 15:18

Antares,
по вашей рекомендации всатвлял код в первый кадр клипа, в котором расположена кнопка, и в первый кадр основной ленты - результат все тот же - ничего не работает.

KUZEN 06.04.2006 17:06

Код нужно (желательно и намного удобнее) писать централизованно в одном месте в первом кадре _root ...

Допустим что бы повесить обработчик нажатия на мувик mc2 который находится в mc1 , а тот в свою очередь находится в _root , то пишем

Код:

_root.mc1.mc2.onPress = function(){
getURL("http://mysite.ru"):
}


KPaul 06.04.2006 17:12

Стандартное перекрытие обработчиков. В примере на весь клип повешено событие реакции на мышь, поэтому обработчики вложенных клипов игнорируются. Советую также не использовать тип button без надобности,
вместо юзай movieclip.
Один из вариантов, через hitTest. Смени тип кнопки на movieclip, и назови его 'but1':
Код:

mnu1.onPress = function(){
        if(this.but1.hitTest(_xmouse, _ymouse, true)){
                trace("HELLO");
        }
}

Также советую использовать хит арею(прямоугольник с альфой=0), если нет ничего кроме текста.

phpshnik 07.04.2006 08:13

KUZEN
спасибо, учту.

KPaul
огромное спасибо за пример кода и, что важнее, за разъяснение. Все понял, и все заработало.


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

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