![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
ветеран форума
|
Как к переменной подписать слушателя?
Чтоб при ее изменении в зависимости от значения выполнялась нужная мне функция. Т.е изменилась переменная и сразу срабатывает событие и выполняется соответствующий код... Подскажите где копать или лучше пример наглядный с комментами. Смотрел что есть нечто подобное в Хелпе - зовется watch(), но ничего так и не понял.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Banned
Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Создаеш обьект. В нем задаеш параметр например obj.n = 0.
Вешаеш на него watch, - 'n' - Строка, име обьекта на каторый повешан ватч. func - Функция каторая вызывается при изменении. 0 просто значение каторое ты задаеш func будет вызыватся каждый раз с этим значением в качестве аргумента. Пишеш функцию - arg1 будет n - arg2 будет предидуше значение obj.n - arg3 будет новое значение obj.n - arg4 третий аргумент из watch |
|
|||||
|
Делай вызов функции в том месте кода, где изменяешь переменную...
|
|
|||||
|
ветеран форума
|
to marat_sa:
Не всегда удобно вызывать функцию где изменяется переменная... Например есть модальное окно, в зависимости от возвращаемого результата мне нужно вызвать определенную функцию, как дождаться изменения переменной и в том же месте вызвать нужную функцию? to qazwsx: Спасибо, уже немного понятней... Вот только еще момент - arg1 будет n и - arg3 будет новое значение obj.n т.е они равны? зачем два одинаковых параметра? или arg1 это имя переменной?
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Banned
|
А про callback кто спрашивал?
Цитата:
![]() |
|
|||||
|
ветеран форума
|
Не понимаю я таких ответов....
Если нечего добавить по теме, то лучше вообще ничего не писАть! Вопрос же не ставился конкретно по watch... это как возможный вариант, и спасибо qazwsx что доступно разжевал именно этот метод... Может вообще на форуме создать правило - типа "то что есть в хелпе и Гугле даже не пытаться спрашивать - иначе растрел!"
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
ветеран форума
|
to chingachgoog:
при всем уважении, но спрашивал то я не у Вас... ![]() или Вы в секретарях числитесь у qazwsx?... в следующий раз буду знать, чтоб к нему обратиться я это через Вас буду делать. Если кроме watch больше способов нет отследить изменение переменной, то всем спасибо, уже разобрался - вопрос можно считать закрытым.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Привет!
Тоже как-то давно разбирался с watch. Вот выдержка из хэлпа: "Метод; регистрирует обработчик события, вызываемый в случае, когда свойство объекта изменяется" В приведеном коде в последней строке значение просто переприсвоино, но watch срабатывает. var myObject:Object = new Object();
myObject.speed = 0;
var speedWatcher:Function = function (prop, oldVal, newVal, speedLimit) {
if (newVal>speedLimit) {
trace("Вы превышаете.");
} else {
trace("Вы не превышаете.");
}
return newVal;
};
myObject.watch("speed", speedWatcher, 55);
myObject.speed = 54;
myObject.speed = 57;
myObject.speed = 57;
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|