1&1 Webhosting
Flashhilfe.de - Flash Community

variablenwert ändert sich -> Aktion [Flash 10]

Forum > ActionScript 3.0 > variablenwert ändert sich -> Aktion

 


AntwortenRegistrieren Seite1  

 18.10.2010, 14:08 
Beiträge: 251
Registriert: Mar 2006

variablenwert ändert sich -> Aktion
Hallo,

gibt es einen Listener für Variablenwertänderung?
so was wie onChanged oder onData

var ast:String = "ahorn"
 ast = "buche"

-> Aktion

die neuen wert für die variable sind jedoch unbekannt

Danke.
strukturart.com // kawumba.ch
 18.10.2010, 16:38Re1
Beiträge: 125
Registriert: Jan 2010

Hallo Strukturart!
Wahrscheinlich gibt es kein Event für die Änderung von Variablen, aber du könntest es so versuchen:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
var ast:String = "ahorn";
var saferAst:String = ast;

addEventListener(Event.ENTER_FRAME, timer);
  function timer(evt:Event) {
    if (ast != saferAst) {
     trace("ast geändert");
     saferAst = ast;
    }
}

//Immer wenn du ast änderst wird die trace Anweisung aufgerufen
ast = "buche";

Wenn dir das nicht gefällt könntest du den längeren Weg über eigene Events (also Klassen die von Event erben) probieren.
Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"
 18.10.2010, 16:58Re2
Beiträge: 125
Registriert: Jan 2010

Das einzige Problem ist das Strings keine Events erhalten können (da Strings nicht vom EventDispatcher erben). Deswegen könntest eigenen Events nur in Klassen wie MovieClip oder Sprite packen.
Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"
Geändert von mikemike am 18.10.10 um 16:59 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 18.10.2010, 17:10Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hm, einen enterframe finde ich etwas übertrieben. du kannst das auch mit einem setter/getter lösen:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
private var _ast:String = "ahorn";

public function set ast(value:String):void{
      if( value == this._ast ) return;
      this._ast = value;
      this.dispatchEvent( new Event( "astChanged" ) ); // kann natürlich auch anders heissen ;-)
}

public function get ast():String{
      return this._ast;
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 18.10.2010, 19:11Re4
Beiträge: 125
Registriert: Jan 2010

Ja, wenn man es mit Gettern und Settern macht klappt es wirklick besser. Aber dann braucht man den Event garnicht mehr. Einfach die Anweisungen in den Setter schreiben.
Treffen sich ein Stein und ein Brett.
Der Stein: "Hi, Ich bin ein Stein"
Das Brett: "Wenn du Einstein bist, bin ich Brett Pitt"
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de