| |||||||
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: Jul 2009
Beiträge: 152
| coroutine in AS3
Halllo, gibt es eine möglichkeit, dass wenn eine Berechnung länger dauert, die Frames trotzdem weiterlaufen und das Programm im Hintergrund weiterläuft. Ich bräuchte das für mehrere dinge. Eines davon wäre eine aufwendigere Rechnung die ca 2s dauert. Während dessen steht Flash natürlich total und die FPS sinkt auf 0. aber ich möchte das dies parallel berechnet wird und im hintergrund trotzdem weiterläuft und er nicht wartet mit dem nächsten frame bis die berechnung fertig ist. In C# und C++ ist das natürlich möglich ^^ aber ich weiß as3 ist nicht c, aber vielleicht gibt es ja sowas Vielen Dank schomal gruß hothead89 |
| | |
| | #2 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
|
Rein in AS3 geht sowas nicht. Meist unterbricht man eine Schleife einfach nach einer gewissen Zeit (etwas unter der Zeit, die für ein frame benötigt wird) und setzt danach im nächsten frame an der selben Stelle in der Schleife wieder ein. Das ganze so oft, bis die Schleife komplett durch ist. Eine Alternative gibt es für Bilddaten, da kann man das mit Pixel Bender als sogenannten ShaderJob mit start(false) asynchron bearbeiten lassen. Manchmal kann man shader auch für andere Daten als Bilder missbrauchen, aber das hängt davon ab, worum es geht. Wenn du dich mit C/C++ auskennst könnte dir Alchemy eine Hilfe sein. mfg sx Geändert von shin10 (15-01-2012 um 02:35 Uhr) |
| | |
| | #3 (permalink) |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
neben den o.g. Möglichkeiten, hier noch etwas Lektüre; zwei andere Threads mit dem selben Problem (incl. Lösung) Ladebalken wird zu spät aktualisiert && AIR App am einfrieren hindern? |
| | |
| | #4 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Was genau ist denn das für eine »aufwendigere Rechnung«? Simple Code-Schleifen lassen sich ja (wie shin10 schon dargestellt hat) recht einfach asynchron (also auf mehrere Frames verteilt) abarbeiten. Bei rekursiven Operationen z.B. ist so eine Aufteilung schon schwieriger...
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (16-01-2012 um 10:23 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2009
Beiträge: 152
|
Danke für die zahlreichen Antworten. Also das Script lädt über HTTP Request ein xml aus einer PHP datei. dann liest er diese aus und verarbeitet sie. das ist aber eher nicht das aufwendige, sondern jedes element in der liste fügt ein Child auf die Bühne hinzu und dass können shcon mal bis zu 50 sein was kurz 2s dauert. das ganze laden kann ich ja async laufen lassen nur das auf die bühne hinzufügen geht nicht. ich wollte eigentlich dort eine art sanduhr platzieren und wenn alle childs auf der stage sind dann soll das verschwinden aber in der zeit des hinzufügens wäre es gut gewesen wenn alle animationen im hintergrund weiterlaufen würden... |
| | |
| | #7 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
Was sind denn das für dicke Kinder, wenn es 2s dauert, 50 von ihnen auf die Bühne zu bringen?
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #8 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zitat:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (15-01-2012 um 22:11 Uhr) | |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jul 2009
Beiträge: 152
|
Naja wenn man innerhalb eines frames ne xml ausliest, daraus kinder erstellt und die in einen vector pushed und danach alle auf ne bühne legt ist es klar dass es mal 1-2s dauern kann. das ist ja beim DataGrid von Flash Builder auch nicht andres, wenn die 30,40 elemente überschritten sind stockt es auch kurz. Ich danke für die Antworten und für die Hilfe! Ich habe jetz durch eure Posts, gerade der von Martin Kraft, einige Ideen wie ich das umsetzen kann. Vielen Dank!!!! Gruß Markus |
| | |
| | #10 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
| Du hast geschrieben, allein das Anzeigen sei das Problem, nicht die xml zu laden/verarbeiten/usw.
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Jul 2009
Beiträge: 152
| ja bei dem laden weiß ich wie ich checke ob der ladevorgang abgeschlossen ist ohne dass der flashfilm anhält. nur bei dem hinzufügen der Elemente wusste ich es nicht hab es allerdings nun mit hilfe der vorherigen posts hinbekommen. Mit einem Timeout funktioniert das wunderbar! Danke nochmal
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |