ich mit meinem Code ein großes Problem habenEntfernen einer Funktion von der Bühne
Ich habe eine Funktion namens „delayCallFuntions“:
function delayCallFuntions(delay: int, func: Function) {
var timer: Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, func);
timer.start();
}
Und ich habe diese Funktion wie unten Verbindung zwischen 2 Punkt zu machen in meinem Bildschirm:
delayCallFuntions(1, function (e: Event) {timer011(wireColor);});
Und Funktion "timer011" macht die Verbindungen:
function timer011(firstColor: int): void {
wireColor = firstColor;
//GRID is a class
//Path A to B
var PathAB: Grid;
PathAB = new Grid(4, 5, 20, 17, canvas, wireColor);
this.addChild(PathAB);
}
Mein Problem ist: ich einige dieser Funktionen wie "timer012" haben "timer013", ... dass sie nacheinander ausführen müssen. Wenn ich aus dieser Szene gehe und wieder zurückkomme, funktionieren immer noch einige dieser Funktionen, während ich sie brauche, um von Anfang an zu beginnen und eins nach dem anderen zu gehen.
zum Beispiel: wenn ich zurückkomme, wird "timer011" gestartet, während auch "timer016" gleichzeitig beendet wird.
hoffe jemand kann mir helfen, da dieses Problem mich frustriert hat.
Können Sie etwas besser erklären, was Ihr Programm zu erreichen versucht. Klingt, als ob Sie nur einige Funktionen in einer verzögerten Kette anstehen möchten? Also wird eine ausgeführt, dann 1 Sekunde später die nächste usw .. Und Sie möchten diese Kette stoppen können, wenn der Benutzer die Szene/den Rahmen verlässt? – BadFeelingAboutThis
@BadFeelingAboutThis Die Funktionen "timer011", "timer012" usw. sollen unterschiedliche Verbindungen zwischen verschiedenen Zellen in meinem Grid herstellen. Sie müssen basierend auf dem Timer ausgeführt werden. Zum Beispiel: timer011 wird nach 100ms ausgeführt und timer012 wird nach 3000ms bis zum Ende ausgeführt. Ich möchte, dass sie gestoppt werden, wenn der Benutzer zur anderen Szene gehen möchte. – mazName
Sie müssen den Verweis auf das ursprüngliche ** Timer ** -Objekt speichern und es stoppen und es zerstören, wenn Sie es nicht mehr benötigen. Außerdem erstelle ich normalerweise ein Feld ** destroyed: Boolean ** und starte Methoden mit ** if (destroyed) return; **, wenn ich also keinen Inhalt mehr brauche und nicht sofort dafür sorgen kann (wie zB verzögerte Aufrufe) , Listener usw.), dann setze ich ** destroyed = true; **, um zu verhindern, dass diese Methoden zur falschen Zeit ausgeführt werden. – Organis