Frage

Ich kann dies tun:

<s:Button id="Btn" enabled.State1="false" />

Der folgende Code gibt mir jedoch einen Fehler.

 private function enableDisable():void{
       Btn.enabled.State1="false";  //Error: Access of undefined property State1
      }

wie man codiert enabled.state1 In ActionsScript?

Vielen Dank

War es hilfreich?

Lösung

Ich weiß, das ist nicht das, was Sie hören möchten, aber hier geht es trotzdem: Warum möchten Sie das tun? Der gesamte Zweck der Staaten ist, dass Sie nicht Tonnen von Aktionen schreiben müssten, um dasselbe zu tun.

Warum du es nicht so kannst

Durch Schreiben Btn.enabled.State1 In ActionScript sagen Sie im Wesentlichen: Geben Sie mir die Eigenschaft "State1" der Booleschen Instanz mit dem Namen "aktiviert". Offensichtlich funktioniert das nicht, weil ein Boolescher keine solche Immobilie hat. Sie verwechseln den MXML -Punkt (.) Notation - verwendet, um Werte an Eigenschaften zuzuweisen, die auf Zuständen basieren - mit der ActionScript -Punktnotation - für das Lesen/Schreibeigenschaften verwendet.

Eine Lösung oder so nah wie es geht

Da es die Natur dieser Funktion ist, dass Sie sie in MXML verwenden würden, können Sie nicht genau das tun, was Sie in ActionScript verlangen. Das nächstbeste wäre zuzuhören StaatsechangeEvent Setzen Sie die Eigenschaft "aktiviert" der Schaltfläche gemäß dem neuen Statusnamen.

addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onStateChange);

private function onStateChange(event:StateChangeEvent):void {
    switch (event.newState) {
        case "wrong":   Btn.enabled = false; break;
        case "correct": Btn.enabled = true; break;
    }
}

(Ich benutze die gleichen Zustände wie in James 'Antwort)

Andere Tipps

Ich denke, Sie verwenden möglicherweise Zustände im falschen Kontext. Beispielsweise haben Sie eine Komponente, die eine Benutzereingabe mit einer Schaltfläche daneben enthält. Die Schaltfläche ist nur aktiviert, wenn das richtige Wort eingegeben wird. Sie würden vielleicht zwei Zustände für die Komponente definieren correct und wrong.

<s:states>
    <s:State name="wrong" />
    <s:State name="correct" />
<s:states>

Sie würden dann, ähnlich wie Sie oben getan haben, je nach Status einzelne Eigenschaften für die Schaltflächen festlegen:

<s:Button id="Btn" enabled.wrong="false" enabled.correct="true" />

Standardmäßig wäre der Status der Komponente wrong. Nach dem Umgang mit dem Benutzereingang und der Überprüfung, ob das richtige Wort eingegeben wird, wird der Status der Komponente in geändert correct.

Normalerweise werden die staatlichspezifischen Eigenschaften von Komponenten zur Kompilierungszeit eingestellt und der Status der Komponente selbst zur Laufzeit geändert.

Hier ist Ein Überblick über Zustände in Flex 4.6

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top