Ich lief gerade in ein seltsames Bindeproblem. In der folgenden Mini-App wird die Flex Label-Komponente aktualisiert, wenn sich 'someText' ändert, aber mein boundSetter wird nicht nach dem ersten, ersten Aufruf aufgerufen.Grundlegende Binding Frage
Kurz gesagt: Warum wird die boundSetterForSomeText() - Funktion nicht aufgerufen, während das Label aktualisiert?
Könnte jemand bitte etwas Licht auf dieses grundlegende Problem werfen? Tausend Dank!
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="1024" minHeight="768"
initialize="onInitialize()"
>
<mx:Panel>
<mx:Label text="{this.someText}" />
<mx:Button label="Set random text" click="generateRandom()" />
</mx:Panel>
<mx:Script>
<![CDATA[
import mx.binding.utils.ChangeWatcher;
import mx.binding.utils.BindingUtils;
[Bindable(event="xxx")]
public var someText : String;
public function onInitialize() : void
{
var cw:ChangeWatcher = BindingUtils.bindSetter(boundSetterForSomeText, this, ['someText']);
}
public function generateRandom() : void
{
this.someText = String(Math.round(Math.random() * 10000));
this.dispatchEvent(new Event("xxx"));
}
public function boundSetterForSomeText(obj:Object) : void
{
trace(obj);
}
]]>
</mx:Script>
</mx:Application>
Das ist richtig, Sie brauchen nicht einmal den Setter, d. H. Sie können den Wert ändern/das Ereignis in einer Funktion senden, die Sie mögen. Aber es ist wichtig, den Getter zu haben. – Tom