![]() |
Как сделать функцию для нескольких объектов?
Есть у меня небольшая функция, с помощью которого можно двигать объект и если передвинуть его в определённую точку и отпустить лкм - он там остановится, а если отпустить лкм в любом другом месте - возвратится назад
так вот, этих точек и объектов у меня несколько. Как сделать чтоб эта функция применялась к сразу нескольким функциям и объектам? Например чтоб разные объекты можно было оставить в разных точках сам код: Код AS3:
|
Вешай слушатель события на все объекты
Код AS3:
|
tsarapkabel, спасибо, получилось =)
теперь я хочу сделать, чтоб не только для lamp действовало возвращение к своему месту, а и для других объектов Код AS3:
и ещё хочу, чтоб эти объекты можно было лепить не только к point1, а и к другим point-ам |
я думаю говорить про ооп и прочишь штуки бесполезно?
например можно как то так: Код AS3:
|
nOobCrafter, тогда stopDrag не работает, lamp.addEventListener не подключается к useLamp()
P.S.: у меня проблемы с интернетом, часто на сайт заходить не получается |
Цитата:
|
expl по вашему if|else лучше?
|
между if и switch нет принципиальной разницы
Код AS3:
|
я развил код из второго поста, мне именно такой подход не очень нравится, но имхо это лучше чем 100500 левых хендлеров. С учетом того что действия вообщем то однотипные можно определить динамические данные и дальше метода backF ходить не придется. Пример ниже:
Код AS3:
|
Если для 100500 объектов нужны РАЗНЫЕ действия - нужно задуматься, а то ли вообще мы делаем?
|
Цитата:
|
можно просто создать базовый класс который будет содержать в себе основные функции и слушатели по перетаскиванию, и от него расширять лампу, амперметр и др.
|
Цитата:
Исходник, который является предметом топика, к сожалению, открыть не могу, поэтому на примитивных примерах: Способ 1 Код AS3:
- одна функция вместо 2-х Недостатки: - появилась услованая логика - источник багов (например очень просто вместо button1 написать button3, на которую вообще этот слушатель не навешан) - допустим мы хотим расширить класс и добавить еще одну кнопку, по нажатии на которую должно "делаться общее" - придется лезть в свитч базового класса (или, еще веселее - копипастить его весь в клас-потомок и дописывать недостающее); - допустим мы хотим поменять слушатель button1 на другой, если продолжать следовать этому подходу - мы что флаг будем делать? и в свиче еще ифом разбирать? (утрирую конечно, можно так же отписать и подписать другой слушатель с другими свичами) - нельзя перегрузить действие одной кнопки (на самом деле можно, если кусок свича в функцию вынести) Способ 2: Недостатки: - 2 функции вместо одной - ? Код AS3:
|
| Часовой пояс GMT +4, время: 14:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.