![]() |
как постоянно отслеживать изменение значения переменной в другом классе?
как постоянно отслеживать изменение значения переменной в другом классе?
|
читай про get, set методы
а также про диспетчеризацию событий |
читал. пока не очень получается. у меня в одном классе есть public static var s:String, которая в определенный момент времени изменяет значение. во втором - private var _msg:String.
во втором классе пишу: Код AS3:
|
если грубо))
в первом классе должен объявить константу S_CHANGED:String = "SChanged"; и при изменении s в ПЕРВОМ КЛАССЕ должен писать dispatchEvent(new Event(S_CHANGED)); а второй класс должен подписать на это событие и в лисенере _msg = e.currentTarget.s; |
а как выполнить определенные действия лишь когда s примет значение? т.е. как постоянно отслеживать значение переменной в функции? к примеру, после завершения определенного дествия у меня запускается функция. как сделать, чтобы после изменения переменной выполнились описанные в функции действия? если я пытаюсь при отрицательном действии опять запустить эту функцию проверки бысторо наступает переполнение стека.
|
ну делаешь во втором классе объявление ЭС с таким именем _s
и в нём же пишешь private function set s(val:String):void { _s = val; dispatchEvent(new Event(S_CHANGED)); } |
для статического свойства функцию вещания придется переложить на статический же диспатчер:
Код AS3:
Код AS3:
|
что такое "ЭС"?
а не проще ли при отрицательном ответе просто запускать таймер, который будет запускать функцию с проверкой до получения нужного результата. и обойтись без геттера/сеттера. или это нубский подход? |
Цитата:
даже нубы думаю должны понимать что это не подход впринципе, когда есть перкрасный способ реализовать то, что вам нужно через события. |
с сеттером не будет ведь никаких отрицательных результатов, ты всегда знаешь изменилось ли значение, только надо добавить проверку, можно и более какую хитрую, если надо канеш
|
| Часовой пояс GMT +4, время: 15:42. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.