AS3: Wie kann ich Ereignisse ausgelöst, wenn eine Eigenschaft geändert wird, ein über der Klasse?
Ich habe ein TextField-innen eine Sprite und ich wollen immer das alpha des TextField-Objekts gleich dem alpha des Sprites. Wie kann ich abonnieren, um die änderungen im Sprite? Ich glaube, ich muss Feuer ein PropertychangeEvent, wie einige, aber ich kann nicht sehen, dass Sprites unterstützt das out of the box?
class TextWidget extends Sprite{
private var textfield:TextField;
public function TextWidget(){
textfield = new TextField();
textfield.alpha = this.alpha; //does'n help
addChild(textField);
??
this.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateAlpha);
??
}
private function updateAlpha(event:PropertychangeEvent):void{
textfield.alpha = this.alpha;
}
}
- Beim posten von code bitte Gedankenstrich jede Zeile 4 Leerzeichen, so dass es wird schön formatiert und eingefärbt, macht es viel einfacher für uns zu Lesen 🙂
- Tippfehler: textfeild.alpha
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit wäre das erstellen einer abgeleiteten Klasse von sprite und überschreiben Sie die alpha-Eigenschaft
Einen anderen Weg würde einfach sein, um die textfield-alpha, wenn alpha-setter von den Eltern sprite ist der hit, wie oben gezeigt, nur ohne das Ereignis.
Andrew
Einen "quick fix", ist das überschreiben der alpha-setter und mithilfe des übergebenen Werts für das Textfeld als auch.