Показать сообщение отдельно
Старый 07.11.2007, 13:19
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 15  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
да, я понял. но вопрос как раз в том как это изменение можно засечь.
вещание об изменении - это уже реакция.
по watch мне удалось узнать пока только то, что он работает примерно так же как addProperty. Т.е. ни чего общего с ентерфреймом и сетинтервалом не имеет. а следовательно не ест ресурсы. что каксается getter/setter то не работает он с ними только напрямую.
Код:
class ObjWatch {
	private var _x:Number;
	public var _xW:Number;
	private var _y:Number;
	public var _yW:Number;
	public function ObjWatch() {
		_xW = _x = 10;
		_yW = _y = 10;
		this.watch("_xW", this.xyWatcher);
		this.watch("_yW", this.xyWatcher);
	}
	private function xyWatcher(prop, oldVal, newVal, numLimit) {
		trace("old " + prop + " = " + oldVal + " new " + prop + " = " + newVal);
		return newVal;// return newVal должен быть бязательно  для корректной работы
	}
	public function set xW(val:Number) {
		_xW = _x = val;
	}
	public function get xW():Number {
		return _x;
	}
	public function set yW(val:Number) {
		_yW = _y = val;
	}
	public function get yW():Number {
		return _y;
	}
}
Если мувик связать с этим классом, вытащить его на сцену и в первом кадре поместить
Код:
// o-имя экземпляра мувика, xW, yW - аналог _x, _y координат мувика.
o.xW = 100;
o.yW = 100;
то увидим трэйс
Код:
old _xW = 10 new  _xW = 100
old _yW = 10 new  _yW = 100
это все не новость, так просто, для тех кому мож. интересно.