If schleife funktioniert nicht

Hallo

ich habe ein sehr banales Problem, wahrscheinlich hab ich gerade nur ein Brett vor dem Kopf und sehe den offensichtlichen Fehler nicht den ich gemacht habe.
Aber ich weis im Moment einfach nicht was ich falsch mache.

Ich möchte, dass mein Clip, wenn er einmal abgespielt hat am letzten Bild stehen bleibt und wenn er nochmals aufgerufen wird, durch Klick auf den Button, nicht abspielt sondern das letzte Bild zeigt.

dafür habe ich auf dem ersten Bild jedes Clips folgendes Skript:

Code:
stop();
var gespielt;

if(this.gespielt==1)
	{
		this.gotoAndStop(15);
	}
	else
	{
	    this.gotoAndPlay(1);
	}

und auf dem Letzen:

stop();
gespielt=1;

Es müsste doch jetzt bei Erreichen des letzten Frames automatische gespielt =1 gesetzt werden und beim nächsten Aufrufen des Clips festgestellt, dass gespielt = 1 und somit gleich auf Frame 15 gesprungen werden oder täusche ich mich?

Viele Grüße und schönes Wochenende.
 
Code:
var gespielt = "0";

und auf dem letzten Frame

Code:
gespielt = "1";

EDIT: Ach ja :) Ebenfalls in der if Abrage müssen Anführungs und Schlusszeichen dazu! Also:

Code:
if(this.gespielt=="1")
 
Zuletzt bearbeitet:
Hallo,

erstmal vielen Dank für deinen Lösungsansatz, ich hab es ausprobiert aber es funktioniert nicht.

Hätte mich auch gewundert, weil der Wert einer Variable kann ja durch aus eine int Zahl sein und muss nicht zwangsläufig ein String sein, auch bei der if abfrage nicht.

Zumindest hat das bei mir früher immer funktioniert.

Hat vielleicht noch jemand eine Idee was an dem Skript falsch ist?

Viele Grüße
 
ist die Datei die du erstellt hast ein AS2 Datei oder versehentlich eine AS3?

Um mich noch zu rechtfertigen ;) Ich Arbeite lieber mit Strings da ich alles schön Global halten kann :) In Ausnahmenfälle benutze ich INT werte .
 
Hallo,

zur Datentypdiskussion:
Es macht hier überhaupt keinen Unterschied, ob du Zahlen oder Strings verwednest . Vom Konzept her müsstest du hier jedoch Boolsche Werte (true | false) verwenden.

Zum Problem:
Du instanzierst die Variable "gespielt" auf dem Keyframe 1 ja jedesmal neu. Deshalb wird sie nie den Wert 1 behalten. Eine Möglichkeit wäre im Falle von AS2 die Kontrollvariable einfach mit einem eindeutigen Namen eine Ebene höher zu speichern:
Code:
stop();

if(this._parent["gespielt"+_this.name])    {
        this.gotoAndStop(15);    
}  else  {
        this.gotoAndPlay(1);    
}

Letzes Frame:
Code:
stop();
this._parent["gespielt"+_this.name] = true;

Gruss
 
Ok danke. Es war wirklich so das ich die Variable außerhalb des Clips declarieren musste. Ich wusste nicht das das skript var gespielt; allein schon dafür sorgt, dass die Variable wieder auf Null gesetzt wir.

Naja nun funktionierts.

Vielen Dank und frohe Weihnachten.
Gruss
 
Zurück