Форум 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)
-   -   this и кнопки (http://www.flasher.ru/forum/showthread.php?t=181553)

KuzKuz 26.06.2012 15:17

this и кнопки
 
мувиклипы и кнопки отличаются тем что this ведет на мувиклип, и можно напрямую получить доступ к его параметрам. а this в кнопке ведет на директорию в которой расположена сама кнопка, и с помощью его обратится к кнопке нельзя. у меня вопрос, можно как-то получить прямой доступ к кнопки (при нажатии на нее же) не наделяя ее именем. В моем случае у меня 36 одинаковых кнопок, и при нажатии на каждую мне нужно получить ее координаты. спасибо.

Sergey_A 26.06.2012 17:13

Кнопки сейчас использовать считается неправильным, все делается с помощью мувиков - с ними работать намного легче.
Я так понял, вам надо определить функцию сразу для нескольких кнопок. Сделать это, наверное, можно в цикле, перебирающем объекты рута, если имена кнопок, например, будут различаться только цифрой (btn1, btn2,...,btn36).

Добавлено через 24 минуты
Пример кода
Код AS1/AS2:

for (var i in _root) {
    if (typeof(_root[i]=="object")) {
          for (var j = 0; j<36; j++) {
              if (_root[i]._name=="btn"+j.toString()) {
                        _root[i].onPress = function()
{
//function body
}//end function
                                                                    }//end if
                                            }//end for
                                              }//end if
}//end for


KuzKuz 26.06.2012 17:37

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

Hauts 26.06.2012 17:40

Вместо ошибочного
Код AS1/AS2:

typeof(_root[i]=="object")

лучше поставить
Код AS1/AS2:

_root[i] instanceof Button

Код AS1/AS2:

"btn"+j.toString()

— избыточно использовать toString().
Ну и плодить onPress анонимными функциями не следует.

KuzKuz 26.06.2012 17:42

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

mooncar 26.06.2012 18:29

KuzKuz, предложение должно начинаться с большой буквы. Уделите внимание оформлению сообщений.

По существу - кнопки поименовать надо, но имя используется только один раз - в цикле, в котором для них задаются свойства и обработчики.
for in используем, когда есть общий контейнер, и в нем много одинаковых объектов - непоименованных и неопределенного количества. Удобно для проверки на hitTest, например, при проверке столкновений в игре с рандомно генерируемыми юнитами, когда важен сам факт события. И т.п.


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

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