| |||||||
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 2002
Beiträge: 219
| Skript wird immer langsamer
Hi alle, ich programmiere gerade eine Anwendung, in der der Benutzer in einem Anzeigebereich herumscrollen und -zoomen kann. Dabei muss der Inhalt dieses Anzeigebereichts -- bestehend aus einfachen Haarlinien -- ständig neu gezeichnet werden (ein bisschen so wie bei Google Earth: es werden immer nur die Linien gezeichnet, die auch sichtbar sind). So etwas habe ich noch nicht gemacht und bin gerade dabei zu testen, ob das von der Performance überhaupt machbar ist. Und dabei stoße ich auf ein seltsames Phänomen: Die Sache läuft am Anfang glatt, aber je mehr ich die Inhalte herumschiebe (d.h.: je öfter sie gelöscht und neu gezeichnet werden) desto zäher wird es. Das kann ja eigentlich nur an einem Programmierfehler meinerseits liegen. Was ich bei jedem Neuzeichnen mache: - Ich lege für jeden Linienzug (ca. 40 Stück) einen neuen Movieclip an - In die jeweiligen Movieclips zeichne ich mit lineTo() Beim nächsten Neuzeichnen lösche ich die alten Movieclips der Linienzüge mit removeMovieClip und fange wieder von vorne an. Anscheinend bleiben trotz removeMovieClip() irgendwie Daten "liegen" und verlangsamen das Skript zusehends. Hat jemand einen Tipp für mich, was ich vergessen habe? Könnte es daran liegen, dass immer wieder getNextHighestDepth() aufgerufen wird? Oder dass die neuen MovieClips die gleichen Namen bekommen wie die gerade gelöschten? -- snorri PS: Was mir auch auffällt: Das Schließen des Flash-Fensters nach viel Herumscrollen dauert viel länger (~ 1 Sekunde) als wenn ich es ohne Herumscrollen gleich schließe. Anscheinend muss da durch Flash noch einiges "aufgeräumt" werden. Geändert von sterlu (28-10-2008 um 09:52 Uhr) |
| | |
| | #2 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Du könntest einfach 40 MovieClips anlegen und diese aber nicht bei jedem Durchgang wieder löschen sondern nur ihren gezeichneten Inhalt löschen mit clear(). Eigentlich müßte das aber auch alles in nur einem MovieClip gehen. gruß, gaspode |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |