| |||||||
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: Jan 2004
Beiträge: 20
|
Hallo Ihr, nach ziemlich langem, erfolglosem Herumprobieren habe ich mich jetzt entschlossen doch mal die Experten zu konsultieren. Ich habe folgendes Problem: Ich bekomme in mein SWF per Socket eine ganze Menge Bilder als ByteArrays. Die wandle ich dann per Loader.loadBytes() via BitmapData DER REIHE NACH in Bitmaps um. Das klappt alles gut so weit. Der Loader triggert über ContentLoaderInfo Events eine Funktion, die das Bild zeichnet, wenn es geladen wurde. Die Funktion sieht so aus: Code: var loaderInfo:LoaderInfo = event.target; var bildData:BitmapData = new BitmapData(picWidth, picHigh, true, 0x00000000); bildData.draw(loaderInfo.content); var bild:Bitmap = new Bitmap(bildData); picContainer.addPic(bild); Für die Performance des SWFs war das allerdings nicht so toll. Es müssen nämlich noch ein paar Mausinteraktionen des Users behandelt werden. Das Problem wollte ich mit einen EventDispatcher lösen. Alle Loads werden nach wie vor in einem Loop abgearbeitet aber die oben gezeigte Funktion soll durch einen EventDispatcher zusammen mit den Mausaktionen priorisiert dispatched werden. Immer wenn ein Bild umgewandelt wurde bekommt der EventDispatcher einen Funktionsaufruf um ein Event zu generieren, was dann die nächste Bildumwandlung triggert. Und wenn Mausevents zwischendurch auftauchen haben die eine hoehere Prioritaet... So weit die Idee, es geht aber nicht, alle Bildumwandlungen werden nach wie vor in einem Block durchgeführt. Meine Vermutung ist, dass Flash während der Umwandlung (also während des Ausführens des oben gezeigten Codes) keine MauseEvents abfängt. Darum meine Frage: Ist das hier beschriebene Konzept einfach nur doof oder kann Flash das nur nicht? Oder habt Ihr sogar eine bessere Idee? Vielen Dank und viele Gruesse, Hannes |
| | |
| | #2 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
|
hi hannes, nur um mir schonmal ein besseres bild machen zu können... wieviele bilder sind es, wie groß sind diese in etwa und wie oft bzw. in welchem fall lädst du die bilder nach? gibt es eigentlich einen grund (swf/jpg, skalieren, schneiden ...), dass du die nachgeladenen bitmaps mit draw erst nochmal in ein anderes bitmap zeichnest, anstatt es mit PHP-Code: mfg sx |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jan 2004
Beiträge: 20
|
Hi shin, danke für die schnelle Antwort. Momentan sind es 600 Bilder aber recht klein so um 6,5KB pro Bild. Die Bilder werden alle hintereinander weg geladen. Den loaderInfo.content kann ich leider nicht direkt als Bild der Buehne hinzufuegen, da es an der Stelle noch kein Bild ist. Ich bekomme die Bilder via Socket als Bytestream rein. Der Loader wandelt mir das um, in ein IBitmapDrawable und das befindet sich dann in dem loaderInfo.content. Was genau der Loader da macht ist mir ehrlich gesagt unklar. Ich habe mir im Debugmodus mal die Inhalte von dem ByteArray (vor dem Load) und von dem loaderInfo.content (nach dem Load) angesehen. Interessanter Weise ist beides letztlich ein ByteArray aber leider nicht das selbe darum konnte ich bis jetzt nicht auf den Loader verzichten. Ich habe übrigens jetzt eine wenig elegante Lösung gefunden, die immer noch nicht 100% performant aber bis jetzt das beste ist: Nach dem die oben beschriebene Umwandlung abgeschlossen ist lass ich mit einem Timer 2 Millisekunden warten bevor ich das Event starte. Das gibt möglichen MausEvents die Möglichkeit „durchzuschlüpfen“. Vielen Dank und viele Gruesse, Hannes |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| bitmap, eventdispatcher, loader, performance |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem ByteArray laden | Jochi | ActionScript 3 | 1 | 25-02-2010 16:34 |
| Problem mit ByteArray | szallah | ActionScript 3 | 1 | 26-08-2009 02:34 |
| Problem mit EventDispatcher | kakktus | ActionScript 2 | 13 | 15-03-2006 13:46 |
| erstes weisses bild - performance problem | jlo | Flash MX | 3 | 22-07-2003 13:31 |
| Ein Problem, weiss nicht wie zu lösen! | FLASHStyler | HTML und CSS | 8 | 26-05-2003 21:11 |