[MX 2004] Ruckeln bei selbsterstelltem Scroller

luke_the_duke

Erfahrenes Mitglied
Hallo zusammen!

Habe wieder mal ein Problem der anderen Art:

Ich habe einen selbst erstellten Scroller, den ich schon verschiedentlich eingesetzt habe, in meinem Movie platziert. Der Hauptfilm beinhaltet praktisch nur Grafiken und statische Texte, sozusagen der Designentwurf. Den einzigen Code, den ich einsetze, ist eine Schlaufe, die gleich auf dem ersten Keyframe den Hintergrund erstellt, indem sie eine Grafik x-mal aus der Bibliothek auf die Bühne setzt. Mein Scroller arbeitet mit einer onEnterFrame-Funktion, die die Differenz, um die gescrollt wird, auf den Ziel-MC anwendet und dann wieder gelöscht wird. Der Rechenaufwand ist meiner Meinung nach gering, es sind ca. 8 Zeilen Code.

Nun ruckelt aber der Scroller schon extrem, obwohl ja eigentlich noch überhaupt nichts anderes passiert. Wenn ich den Scroller alleine exportiere (Ctrl+Alt+Enter), dann ruckelts nicht, aber in Kombination mit dem Hauptclip zwingt er sogar meine 3.4 Ghz mit einem Giga Ram in die Knie.

Hat jemand eine Idee, woran das liegen könnte?

Gruss
 
Hi,

dann wird das Problem am zu scrollenden Inhalt liegen. Ich nehme an, es handelt sich um einen Container, der unter einer Maske liegt? Ist dieser Inhalt sehr komplex (bzw. das Neuzeichnen für Flash aurwendig) oder animiert?

Vielleicht wird auch deine Schleife durch ein Versehen periodisch ausgeführt (ich will Dir nichts unterstellen, aber mir ist das auch mal passiert)?

Wäre gut, wenn Du die Datei (samt Inhalt) einmal posten könntest (hier tuts vielleicht auch schon die SWF..).

Gruß
.
 
Hallo!

Nein, der zu scrollende Inhalt ist bloss ein dynamisches Textfeld in einem MC (testhalber). Die Schleife wird auch nicht endlos ausgeführt, habs getestet (mit trace bei jedem Durchlauf).
Wenn ich jedoch diesen Hintergrund abschalte, bzw. dessen Generierung, dann läuft alles ganz normal.
Der Hintergrund besteht aus ca. 350 MC's, die die Schlaufe auf die Stage wirft und anordnet. Die MC's sind je 40*50 px gross und beinhalten bloss eine kleine Grafik, in Flash erstellt, keine Tint- oder Alpha-Modifikationen, nichts.


Gruss

EDIT:

Wollte die swf posten, hab aber gerade gemerkt, dass ich die Änderungen nicht gespeichert hatte. Das war wohl der Frust :mad:
 
hmm... immerhin muss der Inhalt laufend vor den Hintergrund gezeichnet werden - ich weiß ja nicht, wie komplex der im Endeffekt ist.

Allerdings habe ich die Erfahrung gemacht, dass Flash grade bei vielen selbstgezeichneten (AS) Objekten gerne Performance frisst - obwohl ich selbst grade an etwas arbeite (ein Gästebuch), bei dem ein recht großer und komplexer Inhalt gescrollt werden muss (für jeden Eintrag mehrere verschachtelte MCs, die zum Teil auch mit Zeichnungsmethoden gefüllt werden); und das läuft sehr sparsam.

Gruß
.
 
Hi,

stimmt, die Auslastung geht hoch, sobald man scrollt.

Ich versuche mal eben, etwas in der Art nachzubauen und poste dann meine Ergebnisse.

Gruß

EDIT: So, ich habe mal etwas gebastelt - und bei mir gibts keine Performanceprobleme (siehe Anhang). Ich denke, mit 30x30 Kacheln, unterschiedlicher Transparenz usw. sollte man ein halbwegs realistisches Ergebnis erzielen.

Irgendwas muss bei Dir da verkehrt laufen; irgendwelche onEnterFrames oder Intervalle, die nicht gelöscht werden?

Ansonsten bleibt wohl nichts anderes übrig, als doch die .fla zu posten - 4 Augen sehen mehr als 2. ;)

.
 

Anhänge

  • scrollAndTiles.zip
    12,7 KB · Aufrufe: 14
Zuletzt bearbeitet:
Hallo,

nun, ich hab mich mal anderweitig schlau gemacht und einen (passablen) Kompromiss gefunden:

Meine fla sah ziemlich genau so aus wie dein Beispiel, die Initiierung des Scrollers plus die des Backgrounds auf dem Hauptfilm und den Scroller im Clip, der in etwa deinem entspricht (bei mir ists eine selbstgebastelte Klasse). Da gibts aber einen markanten Unterschied:
Meine Hintergrundkachel beinhaltet viele Kurven und "gebogene" Shapes. Das scheint dem Player enorm Mühe zu bereiten. Als ich nämlich, ähnlich wie du, eine auf viereckigen Formen basierende Grafik benutzte, lief alles wie geschmiert, d.h. kein Ruckeln mehr.

Woran das genau liegt, kann ich dir nicht genau erklären, das ist nun jetzt mehr so eine empirische Behauptung. Es würde mich interessieren, ob ich damit richtig liege und was die Flashplayer-technischen Gründe für dieses Phänomen sind.

Wie auch immer, ich hab dann die Grafik im Photoshop in eine hochaufgelöste png-Datei gepackt und Letztere nach dem altbekannten Muster wieder via for-Schlaufe auf die Stage gesetzt. Auch das funktioniert einwandfrei, da die png die Display-Anweisungen in Pixel und nicht in Vektoren speichert. Mit dieser Variante hat die Seite eine um einiges grössere Lade- und Aufbauperiode, dafür wird die Performance nicht dermassen nachhaltig beeinträchtigt.

Ich dank dir für dein Mitdenken und wenn du was Brauchbares über dieses Phänomen in Erfahrung bringen kannst, lass es mich wissen.

Gruss
 
Jupp, die Idee mit Bitmaps ist mir auch schon gekommen. Ich gehe auch davon aus, dass Flash die Kurven jedesmal neu berechnet, wenn einer der MovieClips (Kacheln) neu gezeichnet werden muss, statt quasi einen "Snapshot" des MCs im Speicher zu behalten. ;)

Gruß
.
 

Neue Beiträge

Zurück