Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.10.2006, 13:06
Maverick_ вне форума Посмотреть профиль Отправить личное сообщение для Maverick_ Найти все сообщения от Maverick_
  № 1  
Ответить с цитированием
Maverick_

Регистрация: Oct 2006
Сообщений: 6
По умолчанию Как узнать имя нажатой кнопки?

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

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

Старый 31.10.2006, 13:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Используй onRelease, а не древний on (release) {…}

Старый 31.10.2006, 13:37
Maverick_ вне форума Посмотреть профиль Отправить личное сообщение для Maverick_ Найти все сообщения от Maverick_
  № 3  
Ответить с цитированием
Maverick_

Регистрация: Oct 2006
Сообщений: 6
to _etc
Пробывал. Если пишу этот код в начальном кадре сцены, то все работает отлично, а если нажимаю на кнопке и пишу в появившемся разделе, то не работает. В чем там может быть проблема?

Старый 31.10.2006, 15:20
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 4  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Код:
btn.onRelease=function(){
  obj_info(this._name);
}

Старый 31.10.2006, 16:43
Maverick_ вне форума Посмотреть профиль Отправить личное сообщение для Maverick_ Найти все сообщения от Maverick_
  № 5  
Ответить с цитированием
Maverick_

Регистрация: Oct 2006
Сообщений: 6
Цитата:
Сообщение от BigDan
Код:
btn.onRelease=function(){
  obj_info(this._name);
}
Да, так будет работать, но тогда мне придется 50 раз изменять там имя кнопки.Т.к. скорее всего в дальнейшем число объектов будет возрастать, то я думал может быть можно как нить сделать так чтобы просто повставлять один и тот же фрагмент кода?

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

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

Старый 31.10.2006, 16:49
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 6  
Ответить с цитированием
MyXus
 
Аватар для MyXus

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

Старый 31.10.2006, 16:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
for..in попробуй. Только надо проверять, что имеешь дело с кнопкой.

Старый 31.10.2006, 17:37
Maverick_ вне форума Посмотреть профиль Отправить личное сообщение для Maverick_ Найти все сообщения от Maverick_
  № 8  
Ответить с цитированием
Maverick_

Регистрация: Oct 2006
Сообщений: 6
MyXuS
Я согласен что генерировать кнопки было бы отлично, Но они все совершенно разные и находятся в черти знает каких местах сцены. Нереально..

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

Старый 31.10.2006, 17:48
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 9  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
Класс пишется вручную. Но мануал по написанию классов тут писать неохота. Почитай хелп если умеешь по английски, если нет - пошарь форум.

Старый 31.10.2006, 18:02
Maverick_ вне форума Посмотреть профиль Отправить личное сообщение для Maverick_ Найти все сообщения от Maverick_
  № 10  
Ответить с цитированием
Maverick_

Регистрация: Oct 2006
Сообщений: 6
MyXuS
Ок Спасибо!
Но тема не закрыта, кто че думает, высказывайтесь!

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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