Способ сделать это - использовать bindSetter
. Это также происходит за кулисами, когда MXML в вашем примере преобразуется в ActionScript перед компиляцией.
// assuming the itemName property is defined on this:
BindingUtils.bindSetter(itemNameChanged, this, ["itemName"]);
// ...
private function itemNameChanged( newValue : String ) : void {
myBtn.label = newValue;
myBtn.visible = newValue != null;
}
... за исключением того, что код, сгенерированный преобразованием MXML в ActionScript, длиннее, поскольку он должен быть более общим. В этом примере он, вероятно, сгенерировал бы две функции, по одной для каждого выражения привязки.