| |||||||
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 2006
Beiträge: 26
| Actionscript blockiert Applikation
Hallo Leute Ich habe ein Actionscript Script welches einige Berechnungen durchführt. Wenn diese Berechnung aber zu lange dauert, kommt beim Ausführen eine Meldung, dass das Script schon zu lange laufe - mit zwei Optionen "Skript Abbrechen" und "Weiterlaufen lassen" (sinngemäss). Wie kann ich verhindern, dass dies passiert? Gibt es eine Art ProcessMessages wie in einigen anderen Programmiersprachen? Kann man dem Script eine "Verschaufspause" geben? Danke schon mal! |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.297
|
nein, weil flash nicht für sowas gemacht ist. bei flash hat die animation "vorfahrt" (auch wenn sich optisch nichts bewegt). die kann/darf nicht mal eine minute unterbrechen um 42 zu berechnen ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #6 (permalink) | |
| Neuer User Registriert seit: Mar 2002
Beiträge: 44
| Zitat:
so funktioniert es jedenfalls nicht !! ********* var intervalID:Number; var duration:Number = 100; intervalID = setInterval(this, "ProcessbarCallBack", duration); while (i<nRowsInDataArraySet) { var AgtJobAdressItems_Array:Array = AgtJobAdress_Array[i].split("|"); agtjobadress_ds.addItem({AdressID:AgtJobAdressItem s_Array[0], AdressTyp:AgtJobAdressItems_Array[1], Status:AgtJobAdressItems_Array[2], Lastdate:AgtJobAdressItems_Array[3]}); i++; _root.application.Progress_prb.setProgress(i, nRowsInDataArraySet); _root.application.Progress_prb.redraw(true); } clearInterval(intervalId); *********** die while schleife ist so heftig unterwegs das noch nichteinmal der progressbar aktualisiert angezeigt wird !! irgendein hinweiss ? thx | |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Hallo, da bist du auch auf der falschen Fährte, du musst die Schleife unterbrechen, während sie läuft, kann NICHTS anderes passieren. Hier mal eine Beispielklasse, mit den public-Werten könnt ihr mal rumspielen, bei den aktuellen Werten läuft die „Berechnung“ bei mir 20 Sekunden bei 80% CPU-Last (natürlich ohne Warnung). PHP-Code: Noch ein paar Kommentare zu den Einstellungsmöglichkeiten: 1) Umso schneller ein Berechnungsschritt ist, umso größer kann stepsPerTimeCheck sein 2) Umso gleichbleibender die Rechenzeit eines Rechenschrittes ist, umso besser kann man stepsPerTimeCheck einstellen, und umso näher kann timePerBlock an blockIntervalDelay liegen 3) Umso kleiner die Framerate sein muss, umso größer können stepsPerTimeCheck, timePerBlock und blockIntervalDelay sein. 4) Umso kleiner stepsPerTimeCheck und timePerBlock umso mehr Zeit geht für den Kontrollmechanismus selbst verloren. Die Ausgaben Berechnungszeit und Gesammtzeit geben euch einen Eindruck, wie gut die Werte für die aktuelle Berechnung, auf dem aktuellen PC eingestellt sind, umso mehr sie abweichen, umso mehr kann man optimieren. So, und jetzt schreibt bitte jemand sowas für rekursive Vorgänge ![]() EDIT: Anhang wie immer vergessen
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (26-01-2006 um 22:22 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |