![]() |
Как использовать один обработчик для разных объектов?
Пишу крестики нолики..(учусь).
Возникла проблема, что для каждого клипа(ячейки) при Код AS3:
Код AS3:
наверное что бы функция смотрела кто её вызвал и срабатывала для той ячейки.?? |
используйте Event.target, чтобы узнать кто вызвал событие (т.е. для доступа к Cell). Подробнее тут.
Должно получиться что-то вроде: Код AS3:
|
В обработчике события (функции Step) проверяем e.target — это ссылка на нажатый клип.
Пробуйте что-то такое, или вариации: Код AS3:
|
Выйдите в раздел Форум Flasher.ru > Flash > ActionScript 3.0
И зайдите в тему "Важно: Слушатель с параметром" |
Цитата:
Хватит e.target, как написали выше |
Решилось так!
Код AS3:
можно как нибудь в эту функцию передать переменную i? |
Вот теперь Вам точно в тему "Важно: Слушатель с параметром" :)
Если не нравится слушатель с параметром, можно создать Dictionary. Код AS3:
|
Cells[int(String(e.target.name).substr(5))] = ....
|
ни чего не происходит((
|
Цитата:
если Cell1, то Cells[int(String(e.target.name).substr(4))] = .... |
Цитата:
Цитата:
Код AS3:
А куда ее вставлять я не понял Добавлено через 2 минуты У меня Cell1 Цитата:
|
Понятно.
Вам надо, чтобы при нажатии на Cells1 заполнялось Cells[1].. Вставляйте там, где ловите нажатие. Так вы определяете индекс Cells - int(String(e.target.name).substr(4)) |
Спасибо!! Заработало!
|
Цитата:
Почему? Попробуйте разобраться, что делает следующая конструкция, построенная по такой же технологии: Код AS1/AS2:
|
Народ я чегото не совсем вас понимаю. Говоря "Слушатель с параметром" не обязательно идет речь о каком то необычным параметре. e.target тоже параметр. И в это теме первая же ссылка указывает как можно использовать e.target для определения на что именно нажато.
А гдето в теме было написано что можно в e.target добавить своство чтобы его можно было использовать при обработке. Вообщем ИМХО все что нужно товаришу он там нашел бы:) Добавлено через 5 минут Вот вместо этого я бы советовал как раз добавить новое поле. Код AS3:
а если в массиве те самые елементы на которые нажимают то лучше сделать Код AS3:
|
Цитата:
Цитата:
По делу: согласен int(String(e.target.name).substr(4)) это не совсем хорошо, тут проблема в проектировании приложения - если подумать можно все сделать прозрачнее и однозначнее, без кучи Cell1 ... Celln. Но для новичка, если он понимает, что делает та функция, подойдет. Потом он столкнется с неудобствами, связанными с такой архитектурой, сделает выводы и сделает лучше. PS Например в коде создавать и размещать клетки, заносить их в массив, потом работать с ним. |
| Часовой пояс GMT +4, время: 05:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.