|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
ветеран форума
|
Как к переменной подписать слушателя?
Как к переменной подписать слушателя?
Чтоб при ее изменении в зависимости от значения выполнялась нужная мне функция. Т.е изменилась переменная и сразу срабатывает событие и выполняется соответствующий код... Подскажите где копать или лучше пример наглядный с комментами. Смотрел что есть нечто подобное в Хелпе - зовется watch(), но ничего так и не понял.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: 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("Остановите Землю, я сойду!!!"); |
|
|||||
ветеран форума
|
Не понимаю я таких ответов....
Если нечего добавить по теме, то лучше вообще ничего не писАть! Вопрос же не ставился конкретно по watch... это как возможный вариант, и спасибо qazwsx что доступно разжевал именно этот метод... Может вообще на форуме создать правило - типа "то что есть в хелпе и Гугле даже не пытаться спрашивать - иначе растрел!"
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
А про callback кто спрашивал?
Ответа нет в хелпе что-ли? Или ответ qazwsx более подробный, чем в хелпе? |
|
|||||
ветеран форума
|
to chingachgoog:
при всем уважении, но спрашивал то я не у Вас... или Вы в секретарях числитесь у qazwsx?... в следующий раз буду знать, чтоб к нему обратиться я это через Вас буду делать. Если кроме watch больше способов нет отследить изменение переменной, то всем спасибо, уже разобрался - вопрос можно считать закрытым.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Mur4ik, извините, я вовсе не думал вас не только поучать, но и даже вообще как-то осуждать. Мой вопрос был более исследовательский: в данном вопросе русский хелп настолько запутан?
|
|
|||||
Привет!
Тоже как-то давно разбирался с 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, время: 02:41. |
|
« Предыдущая тема | Следующая тема » |
|
|