![]() |
как постоянно отслеживать изменение значения переменной в другом классе?
как постоянно отслеживать изменение значения переменной в другом классе?
|
читай про 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:
|
что такое "ЭС"?
а не проще ли при отрицательном ответе просто запускать таймер, который будет запускать функцию с проверкой до получения нужного результата. и обойтись без геттера/сеттера. или это нубский подход? |
Цитата:
даже нубы думаю должны понимать что это не подход впринципе, когда есть перкрасный способ реализовать то, что вам нужно через события. |
с сеттером не будет ведь никаких отрицательных результатов, ты всегда знаешь изменилось ли значение, только надо добавить проверку, можно и более какую хитрую, если надо канеш
|
есть функция, отслеживающая изменение переменной. есть другая функция, в котороя надо проверить значение и, если она не равно null выполнить действие. а вот как их связать? т.е. проверочная ф-ция выполнилась один раз, обломалась, и все? как тут без таймера?
очень хочется разобраться в get/set. |
Бугагага, это еще смешней людей верящих в говорящих змей. Восьпользуйтесь поиском:P
http://bit.ly/OfdfG http://bit.ly/mjmdj |
| Часовой пояс GMT +4, время: 21:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.