![]() |
Обобщил код Listener, и он теперь срабатывает максимум 1 раз
Вот так работает как надо при каждом возникновении события.
Код AS3:
Код AS3:
|
Мистику какую-то вы нам рассказываете) Вы точно уверены, что больше ничего не меняли?
И за какое событие отвечает обработчик place? |
Серьезно, код№1 работает. А код№2 србатывает один раз, а потом перестает работать.
Листенер отвечает за MouseEvent.MOUSE_UP. Как видно, код№2 ничего больше не меняет, чего бы не менял код№1. Самый прикол: что в коде№2 обобщенная функция вызывается, но Код AS3:
|
itemsInPack1, itemsInPack2 передаются в функцию по значению и меняются там как локальные переменные, сами же не меяются
возможно из-за этого ломается что-то в общем алгоритме к слову, зачем ты их передаешь, если они члены класса? |
itemsInPack1, itemsInPack2, также как и numberOfItems1, numberOfItems2 - это переменные экземпляра. Чтобы каждый раз не писать:
Код AS3:
А если в обобщенной функции все локальные переменные определить как переменные экземпляра - то это нормальное решение? |
ну сам подумай, если в методе к ним и так есть доступ зачем их передавть в аргументах
|
Передаю в аргументы потому, что у меня очень много операторов if в усорвия которых будут входить и itemsPack3, и numberOfItems3 и т.д. Если для каждого из них столько расписывать, сколько в коде 1, то потом чтоб разобраться - придется в коде очень долго копаться. А тут одна функция, по которой все должно быть видно.
Осталость только додуматься, как при её повторном вызове менять переменную экземпляра больше чем 1 раз. |
попробуйте сделать так
Код AS3:
значение itemsInPack1 не изменится чтобы все работало, нужно, чтобы itemsInPack1 и itemsInPack2 изменялись не в функции, а перед вот пример: Код AS3:
|
Цитата:
просто имей ввиду, что простые типы, если ты передаешь их в функцию, передаются по значению, т.е. так ты сможешь только воспользоваться значением _num, но не изменить его: Код AS3:
|
Спасибо огромное! Никогда бы не догадался, что можно увеличивать аргумент прямо передавая его в функцию. Теперь это будет новым приемом в моем арсенале :)
|
| Часовой пояс GMT +4, время: 01:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.