Вы поместили трассировку в установщик, чтобы убедиться, что она не вызывается?
Является ли periodChangeAmount
свойством Bindable
для чтения и записи? В этом случае flex внутренне вызывает метод получения, чтобы убедиться, что устанавливаемое значение не является существующим значением. Если текущее значение свойства (возвращаемое получателем) совпадает со значением, которое должно быть установлено, установщик не вызывается.
private var privateVar:Boolean = false;
[Bindable]
public function set readWriteProp(value:Boolean):void
{
trace("set called with " + value + " current is " + privateVar);
privateVar = value;
}
public function get readWriteProp():Boolean
{
trace("get called : " + privateVar);
return privateVar;
}
//...
a.readWriteProp = true;
a.readWriteProp = true;
Отслеживаемый вывод:
позвонить: ложь
набор вызван с истинным током ложно
получить вызов: правда
Обратите внимание, что метод получения вызывался дважды, но метод вызывался только один раз. Во втором назначении, поскольку текущее значение и значение, которое должно быть установлено, одинаковы (true), установщик не вызывается.
Я считаю, что команда разработчиков Flex сделала это таким образом, чтобы избежать избыточности в связывании.