Wert einer Variablen mit Button um 1 erhöhen

Spelmann

Erfahrenes Mitglied
Ich versuche gerade mir AS3 beizubiegen. Ist recht kniffelig.
Für einen Kalender möchte ich per Button den Wert der Variablen meinMonat um 1 erhöhen.
Klappt aber nicht weil der neue Wert nur innerhalb meiner Funktion existiert.

Code:
var meinMonat:int = 0;

this.button.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e:MouseEvent):void{
	meinMonat++;
}
trace (meinMonat); // bleibt immer bei 0


Kann mir jemand sagen wie sich das bewerkstelligen lässt?
Vielen Dank.
 
Hallo,

dein Code funktioniert. Das einzige was dich verwirrt ist:

Flash traced deine Variable nicht.

Warum?

Du musst das Trace mit in die Click Function schreiben, damit du auch die Änderung siehst ;)

Sonst traced er nur ein mal die 0 und dann nie wieder....

mfg
 
Hi zirag.
Schon klar. Mein Fehler war, daß ich dachte beim Klicken wird der ganze Code neu ausgeführt. Wo es in Teilen noch hängt ist, wie stelle ich den neuen Wert ausserhalb der Funktion zur Verfügung?
Ausgabe in einem Textfeld habe ich schon hinbekommen. (Mit Hilfe in http://www.flashforum.de)
Aber ich möchte ja gerne daß die Variable meinMonat im ganzen Script den neuen Wert hat. Da hängts noch.
In PHP wäre das ganz einfach.
Ich hab das Prinzip von AS noch nicht kapiert.
 
Zuletzt bearbeitet:
Die Variable ist doch dann trotzdem überall verfügbar... siehe Beispiel:

PHP:
var meinMonat:int = 0;

button.addEventListener(MouseEvent.CLICK, mh);
addEventListener(Event.ENTER_FRAME,eh);

function mh(e:MouseEvent):void
{
	meinMonat++;
}

function eh(e:Event):void
{
	myTxt.text = meinMonat.toString();
}

mfg
 
Die Variable ist überall verfügbar, da sie direkt auf der Hauptzeitleiste des Movieclips definiert wurde und nicht in einer Funktion.
 
PHP:
var meinMonat:int = 0;

this.button.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e:MouseEvent):void{
	meinMonat++;
trace (meinMonat); // hier auch?
}
trace (meinMonat); // weil hier bleibt er solange null bis der button einmal betätigt wurde und der code hier neu durchlaufen wird
 
Zurück