![]() |
Событие изменения значения переменной
Можно каким нибудь образом создать событие отлавливающее изменение значения переменной, допустим присвоили переменной значение и обработчик этого события выполняет код trace("переменная изменилась");
|
С переменными работать только через get/set. А внутри что угодно можно делать.
|
Или использовать Bindable (http://www.flasher.ru/forum/showthread.php?t=174636)
|
Genzo, или не использовать. Описано там же ;)
|
спасиб, ща почитаю
Добавлено через 15 минут iNils, ваш вариант не подходит, нет желания работать с set и get, другой способ нужен) насчёт статьи, прочитал http://blog.diestro.ru/binding-v-actionscript-1/#how переменная(text) за изменением которой нужно следить находиться в классе который обязательно должен наследоваться от EventDispatcher а если у меня два экземпляра классов которые наследуются от sprite, и в одном нужно следить за изменением свойств другого, тогда как быть ? можно канешн подписать экземпляр на событие ENTER_FRAME и в обработчике отслеживать изменение переменной, но this isn't good. нужно чтобы событие возникало ток при изменении переменной |
чем вам сетеры/гетеры не нравятся? В них легко сможете засунуть события, Sprite наследник EventDispatcher. Через ENTER_FRAME гораздо более кривая реализация. Если только одному надо следить за изменением другого, то можно следящему передать ссылку на изменяемого, если оба следят друг за другом, функции слежения и изменения я обычно перекладываю на третий класс, про который изменяемые ничего не знают, как и про существование друг-друга, меньше размазаной логики.
|
если не ошибаюсь если использовать сетеры и гетеры к переменным придётся по другому обращаться, или я путаю ?
|
путаешь
|
ну вот накидал
Код AS3:
Код AS3:
Код AS3:
|
Создание геттера/сеттера
Код AS3:
Код AS3:
Необходимо обращаться внутри того же класса? Тоже можно, но действительно необходимо это бывает крайне редко. И еще, имя метода и название переменной должны отличаться. |
| Часовой пояс GMT +4, время: 12:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.