|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
ветеран форума
|
to chingachgoog:
извинения не принимаются , т.к не за что тут извиняться к русскому хелпу я все же обратился, спасибо to Жень Шень: спасибо, хелп я уже изучил по вопросу watch P.S. Я так понял что в данном методе немаловажно вернуть функцией callback значение отслеживаемой переменной иначе ей присвоится значение "undefined". Всем спасибо...
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
to Mur4ik
Нет, я не в смысле "подсказать", а как бы продолжить ваш разговор про watch. Ситация: какой-нить объект отработал свой код и вернул значение. А оно оказалось равным прежнему. А watch все равно срабатывает! То есть надо еще сверить с предыдущим значением, чтоб не вызывать функцию вхолостую. Но, сдругой стороны этот, скажем казус, оказался мне на руку, когда надо было запускать функции из внешней оболочки - я просто переприсваивал переменной тоже значения и watch делал свое дело! |
|
|||||
ветеран форума
|
Спасибо, учту...
Так этот wanch срабатывает всякий раз при изменении переменной или все таки при присваивании ей какого либо значения... в Хелпе написано: "callback Функция, вызываемая, когда отслеживаемое свойство изменяется.", т.е как в данном случае понимать слово "изменяется"?
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Как вариант, если просто для переменной, - написать свой getter-setter.
|
|
|||||
Я не сразу понял что такое watch, пока не сделал так
Именно это мне нужно было |
|
|||||
Привет!
А мне кажется, что правильней писать так: var myObject:Object = new Object(); myObject.test = true; var BoolWatcher:Function = function (prop, oldVal, newVal) { if (newVal) { trace("включили"); } else if (!newVal) { trace("выключили"); } return newVal; }; myObject.watch("test", BoolWatcher); myObject.test = true; myObject.test = false; myObject.unwatch("test"); myObject.test = true; myObject.test = false; 1. watch - метод объекта. А у вас не понятно к какому объекту он относится. Отсюда: 2. Метод не подсвечивается при написании (возможно это для вас несущественно), а значит не проверяется синтаксис АС. И: 3. У вас не будет работать метод unwatch. А он может быть полезен, если надо прекратить отслеживание |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Почему не понятно? Компилятор подставляет this автоматом. Потому можно и unwatch без проблем вызвать.
|
|
|||||
Регистрация: Jul 2008
Сообщений: 7
|
вроде никто про методы get/set не упоминал
class Team { var teamName:String; var teamCode:String; var teamPlayers:Array = new Array(); function Team(param_name:String, param_code:String) { this.teamName = param_name; this.teamCode = param_code; } function get name():String { return this.teamName; } function set name(param_name:String):Void { this.teamName = param_name; } } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
А если поднять глаза выше на несколько постов?
|
|
|||||
Так не вызывается:
test = true; test = false; unwatch("test") test = true; test = false; // трейс: включили выключили включили выключили Но, помоему, в большом коде и с несколькими watch можно запутаться. Короче, на любителя... все это... Последний раз редактировалось Жень Шень; 20.11.2008 в 18:43. |
Часовой пояс GMT +4, время: 04:30. |
|
« Предыдущая тема | Следующая тема » |
|
|