Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-01-2012, 01:25   #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
hothead89 ist offline   Mit Zitat antworten
Alt 15-01-2012, 02:34   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
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
__________________

flintfabrik.de

Geändert von shin10 (15-01-2012 um 02:35 Uhr)
shin10 ist offline   Mit Zitat antworten
Alt 15-01-2012, 04:36   #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?
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 15-01-2012, 09:52   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
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)
Martin Kraft ist offline   Mit Zitat antworten
Alt 15-01-2012, 20:24   #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...
hothead89 ist offline   Mit Zitat antworten
Alt 15-01-2012, 20:49   #6 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
das ganze laden kann ich ja async laufen lassen nur das auf die bühne hinzufügen geht nicht.
wieso sollte das nicht gehen?
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 15-01-2012, 21:11   #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
milchreis ist offline   Mit Zitat antworten
Alt 15-01-2012, 22:10   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von hothead89 Beitrag anzeigen
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...
Das solltest Du mit einem Script, wie dem, das ich hier gepostet habe, lösen können...
__________________
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)
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-01-2012, 08:41   #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
hothead89 ist offline   Mit Zitat antworten
Alt 16-01-2012, 18:32   #10 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Zitat:
Zitat von hothead89 Beitrag anzeigen
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.
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
milchreis ist offline   Mit Zitat antworten
Alt 16-01-2012, 22:22   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
Zitat:
Zitat von milchreis Beitrag anzeigen
Du hast geschrieben, allein das Anzeigen sei das Problem, nicht die xml zu laden/verarbeiten/usw.
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
hothead89 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele