| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 14
| Fragen zur Flash-Klasse Timer
Hallo, ich habe wie oben beschrieben ein paar Fragen zur Flash-Klasse Timer: 1. Wenn ich ein Objekt der Timer-Klasse in einer Funktion lokal instanziere, kann ich dann davon ausgehen, dass das Objekt dann auch automatisch wieder "zerstört" wird, wenn die Anzahl der "Durchläufe" begrenzt und alle Durchläufe beendet wurden? Normalerweise bleibt von lokalen Variablen in einer Methode nichts mehr übrig, wenn die Methode ausgeführt wurde und werden aus dem Speicher entfernt. Aber das Timer-Objekt zählt ja nach einem Methoden-Aufruf munter weiter... wie bei lokal erzeugten onEnterFrame-Ereignissen, von denen man eine Referenz behalten sollte, wenn man sie einmal wieder zerstören will. Code-Schnipsel Beispiel Code: // erzeuge Timer der 4mal die "sayHelloWorld-Funktion" aufruft im Intervall von 1 Sekunde
var myTimerTestObject:TimerTestClass = new TimerTestClass();
myTimerObject.getTemporaryTimer(4);
...
public function getTemporaryTimer(counter:int):void {
var timer:Timer = new Timer(1000, counter);
timer.addEventListener(TimerEvent.TIMER, sayHelloWorld);
}
private function sayHelloWorld():void {
trace("Hello World!");
} Code-Schnipsel Beispiel Code: // erzeuge Timer der 4mal die "sayHelloWorld-Funktion" aufruft im Abstand 1 Sekunde
var myTimer:Timer = new Timer(1000, 6);
myTimer.addEventListener(TimerEvent.TIMER, sayHelloWorld);
// überschreiben
overwriteTimerNow();
...
function overwriteTimerNow():void {
myTimer = new Timer(500, 7);
myTimer.addEventListener(TimerEvent.TIMER, sayHelloWorld);
}
function sayHelloWorld():void {
trace("Hello World!");
} Geändert von nexu (20-10-2011 um 00:04 Uhr) |
| | |
| | #2 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Mach mal das: PHP-Code: PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 14
|
Okay ich werde das nochmal in einem neuen Test versuchen, so wie du das erklärt hast. Ich hoffe ich kann sicher stellen, dass nichts im Speicher bleibt. Könnte mir vorstellen, dass auch sowas die Performance nach längerem negativ beeinflusst, wenn im Speicher haufen Objekte liegen, die keine weitere Bedeutung für das Flashprojekt mehr haben und über keine Referenz mehr "ansprechbar" sind.Edit: Also das obere funktioniert schon mal nicht. Wenn ich die Variable mit einem neuen Timer-Objekt überschreibe muss ich vorher das alte Objekt zerstören, sonst hat man am Ende zwei Timer-Objekte, bei denen die Referenz erst erzeugten Objekt verloren gegangen ist... Und genau da ensteht das Problem... Wie kann ich ohne großen Aufwand feststellen, dass der Timer zu Ende ist und das Objekt dann zerstören? Geändert von nexu (21-10-2011 um 01:39 Uhr) |
| | |
| | #4 (permalink) | ||||
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.867
|
dürfte ich dir die Eigenschaften delay und repeatCount der Timer-Klasse ans Herz legen; dann brauchst du hierfür nicht extra neue Timer-Objekte erzeugen. Und das ganze wird noch durch die Methoden stop() und reset() abgerundet. Zitat:
Zitat:
PHP-Code: Zitat:
Ich für meinen teil räum lieber selbst hinter mir auf, dann weiss ich 1. dass es gemacht wird und 2. wann es gemacht wird. Zitat:
Geändert von thomas_E (21-10-2011 um 03:36 Uhr) | ||||
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Oct 2011
Beiträge: 14
|
Okay, jetzt habe ich mehr Klarheit gewonnen. Und wenn die Start-Funktion des Timers als Closure konserviert wird, dann wird sie auch weiter existieren... Zitat:
| |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Speed Hack sichere Timer Klasse | Elo | ActionScript 3 | 0 | 30-09-2010 13:32 |
| Problem mit Timer Klasse | bratzz | ActionScript 3 | 4 | 27-08-2010 14:29 |
| [STUFF] Timer Klasse | public | Stuff | 4 | 11-08-2007 22:30 |
| Fragen zu Timer und ENTER_FRAME Event | brookman | ActionScript 3 | 3 | 16-05-2007 13:22 |
| Timer Klasse plus Wecker/Alarm | Hans meisa | ActionScript 2 | 1 | 04-05-2007 21:11 |