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

Maverick_ 31.10.2006 13:06

Как узнать имя нажатой кнопки?
 
Всем привет!
Я делаю что то типа плана здания, и у меня там есть порядка 50 объектов. Мне необходимо чтобы при нажатии на объект о нем появлялась краткая информация. Все эти объекты являются кнопками, но не экземплярами, у каждой своё Instance Name вроде b0, b1, b2... Я хочу написать функцию obj_info(btn_name), которая в зависимости от переданного в нее имени кнопки btn_name, будет показывать ту или иную информацию.
Сначала думал что это все реализовать очень легко, но столкнулся с подводными камнями - не могу в событии кнопки On(Press){...} получить имя кнопки, чтобы отправить его как параметр функции. Пробывал свойство _name, но оно пустое:o.
Прошу помочь мне с этой проблемой, заранее спасибо.

P.S. Использую Flash MX 2004.

etc 31.10.2006 13:31

Используй onRelease, а не древний on (release) {…}

Maverick_ 31.10.2006 13:37

to _etc
Пробывал. Если пишу этот код в начальном кадре сцены, то все работает отлично, а если нажимаю на кнопке и пишу в появившемся разделе, то не работает. В чем там может быть проблема?

BigDan 31.10.2006 15:20

Код:

btn.onRelease=function(){
  obj_info(this._name);
}


Maverick_ 31.10.2006 16:43

Цитата:

Сообщение от BigDan
Код:

btn.onRelease=function(){
  obj_info(this._name);
}


Да, так будет работать, но тогда мне придется 50 раз изменять там имя кнопки.Т.к. скорее всего в дальнейшем число объектов будет возрастать, то я думал может быть можно как нить сделать так чтобы просто повставлять один и тот же фрагмент кода?

Но даже такой способ нельзя назвать оптимальным..Может все таки можно как нибудь оптимизировать эти действия?

У меня в голове крутится идея создания класса моих объектов, у которых будет общий метод по выводу информации(грубо говоря перегруженный onRelease). Т.е. объектами класса будут являться символы-кнопки. Но как сделать это во Flash'е я понятия не имею, так как свое знакомство с ним только начинаю..
Может кто сталкивался с подобными проблемами?

MyXus 31.10.2006 16:49

бжжж
1. если у кнопки есть идентификатор (_name) - он никуда не денется.
2. Но самым прекрасным способом было бы - генерить кнопки программно, сразу со всеми обработчиками, captions, позиционированием и анимацией.
3. сопоставить мувиклипу из библиотеки класс можно - там галочка такая есть в свойствах - AS2 класс. Он автоматически подцепится при помещении мувика на сцену.

etc 31.10.2006 16:50

for..in попробуй. Только надо проверять, что имеешь дело с кнопкой.

Maverick_ 31.10.2006 17:37

MyXuS
Я согласен что генерировать кнопки было бы отлично, Но они все совершенно разные и находятся в черти знает каких местах сцены. Нереально..

Да нашел в свойствах преобразованияв кнопку сопоставление с классом, Но не соображу че там указывать нужно. Не подскажешь как правильно все указать.Вообще этот класс нужно создавать вручную, или может он создан уже?

MyXus 31.10.2006 17:48

Класс пишется вручную. Но мануал по написанию классов тут писать неохота. Почитай хелп если умеешь по английски, если нет - пошарь форум.

Maverick_ 31.10.2006 18:02

MyXuS
Ок Спасибо!
Но тема не закрыта, кто че думает, высказывайтесь!


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

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