![]() |
Реакция одного класса на действия другого
Доброго времени суток.
Появился такой вопрос при создании игрушки (использую FlashPunk, если что): как по-человечески реализовать вызов функции одного класса на действие другого? К примеру есть у нас мир, внутри него создается наш персонаж и при нажатии на клавишу должна создаваться пуля. (Далее аналогично каждый новый объект должен будет обращаться к экземпляру xmlsocket чтобы отправить инфоормацию и принять) Мой вариант с созданием пули: Код AS3:
Код AS3:
Код AS3:
|
Я делал так:
у меня есть контроллер игрока, контроллер игры, есть класс пули и игрока. Контроллер игрока обрабатывает нажатия и передвигает игрока. Но для пуль он диспатчит событие Я_ВЫСТРЕЛИЛ, оно баблится до стейджа, перехватывается в контроллере игры (там я подписываюсь на это событие у стейджа). Контроллер игры уже создает пулю, размещает ее, помещает в массив/достает из пула. И есть общий цикл игры, где через for each прогоняются необходимые массивы (пули и враги) и у каждого вызывается метод move(), двигающий все и вся. Затем в том же цикле проверяются столкновения, пересчитываются сектора и прочее. |
Вызов функции другого класса осуществляется с помощью оператора "точка". Шониясно?
http://livedocs.adobe.com/flash/9.0/...ators.html#dot Берёте экземпляр класса, пишете точку, пишете имя метода, пишете скобочки. Не можете передать экземпляр класса? Можно тупо метод передать как переменную типа Function и её вызывать без точки даже, коллбэк называется. Сейчас у вас вполне всё нормально, но как же вызвать метод другого класса знать тоже не мешает. |
КорДум, спасибо за способ :)
-De-, да с точкой то все ясно, просто мне поставила по началу в тупик ситуация, когда существуют 2 экземпляра класса в 3ем, и один вызывает метод второго. Но спасибо за коллбэки, погуглил, нашел статью - разобрался в общем с данной ситуацией! |
| Часовой пояс GMT +4, время: 04:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.