Просмотр полной версии : Как узнать имя нажатой кнопки?
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.
Используй onRelease, а не древний on (release) {…}
Maverick_
31.10.2006, 13:37
to _etc
Пробывал. Если пишу этот код в начальном кадре сцены, то все работает отлично, а если нажимаю на кнопке и пишу в появившемся разделе, то не работает. В чем там может быть проблема?
btn.onRelease=function(){
obj_info(this._name);
}
Maverick_
31.10.2006, 16:43
btn.onRelease=function(){
obj_info(this._name);
}
Да, так будет работать, но тогда мне придется 50 раз изменять там имя кнопки.Т.к. скорее всего в дальнейшем число объектов будет возрастать, то я думал может быть можно как нить сделать так чтобы просто повставлять один и тот же фрагмент кода?
Но даже такой способ нельзя назвать оптимальным..Может все таки можно как нибудь оптимизировать эти действия?
У меня в голове крутится идея создания класса моих объектов, у которых будет общий метод по выводу информации(грубо говоря перегруженный onRelease). Т.е. объектами класса будут являться символы-кнопки. Но как сделать это во Flash'е я понятия не имею, так как свое знакомство с ним только начинаю..
Может кто сталкивался с подобными проблемами?
бжжж
1. если у кнопки есть идентификатор (_name) - он никуда не денется.
2. Но самым прекрасным способом было бы - генерить кнопки программно, сразу со всеми обработчиками, captions, позиционированием и анимацией.
3. сопоставить мувиклипу из библиотеки класс можно - там галочка такая есть в свойствах - AS2 класс. Он автоматически подцепится при помещении мувика на сцену.
for..in попробуй. Только надо проверять, что имеешь дело с кнопкой.
Maverick_
31.10.2006, 17:37
MyXuS
Я согласен что генерировать кнопки было бы отлично, Но они все совершенно разные и находятся в черти знает каких местах сцены. Нереально..
Да нашел в свойствах преобразованияв кнопку сопоставление с классом, Но не соображу че там указывать нужно. Не подскажешь как правильно все указать.Вообще этот класс нужно создавать вручную, или может он создан уже?
Класс пишется вручную. Но мануал по написанию классов тут писать неохота. Почитай хелп если умеешь по английски, если нет - пошарь форум.
Maverick_
31.10.2006, 18:02
MyXuS
Ок Спасибо!
Но тема не закрыта, кто че думает, высказывайтесь!
Maverick_
01.11.2006, 11:37
MyXuS
Я разобрался с классами, все отлично работает. Перегрузил событие onRelease так чтобы показывало инфу.Даже не придется код для каждой кнопки писать. Спасибо!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.