Ich habe eine Anwendung in Flash geschrieben (eigentlich ist es in Haxe geschrieben und läuft unter SHWX, aber das spielt hier keine Rolle). Ich habe eine ziemlich komplexe Aufgabe, die viel CPU-Leistung verbraucht und manchmal für mehr als 15 Sekunden ausgeführt wird. Wenn das passiert, habe ich einen Fehler, der besagt "Ein Skript wurde länger als die Standard-Zeitüberschreitung von 15 Sekunden ausgeführt." und alles stürzt ab.
Ich weiß, dass ich Fortsetzungen verwenden kann, um dies zu verhindern, aber gibt es eine Möglichkeit, diese "Standard-Zeitüberschreitung" zu verlängern? Es ist ein Entwickler-Tool, Responsives ist nicht wirklich wichtig.
Eine andere Möglichkeit besteht darin, ein swfmill -basiertes swf über den Schalter -swf-lib zu verknüpfen und dieses ScriptLimits-Tag dort zu setzen, das haxe wiederverwenden wird es dann.
In CS3 + legen Sie einfach die Eigenschaft "Script time limit" des swf zum Zeitpunkt der Veröffentlichung fest - sie befindet sich in der Flash-Registerkarte der Veröffentlichungseinstellungen
Achten Sie beim Testen Ihrer Anwendung auf scriptTimeLimit Eigentum. Wenn die Initialisierung einer Anwendung zu lange dauert, Flash Player warnt Benutzer, dass Flash Player durch ein Skript langsam ausgeführt wird fordert den Benutzer auf, die Anwendung abzubrechen. Wenn dies die Situation ist, Sie können die scriptTimeLimit -Eigenschaft des Tags festlegen zu einer längeren Zeit, damit die Flex-Anwendung genügend Zeit hat initialisieren.
Der Standardwert der Eigenschaft scriptTimeLimit ist jedoch 60 Sekunden, das ist auch das Maximum , so dass Sie nur den Wert erhöhen können wenn Sie es zuvor auf einen niedrigeren Wert eingestellt haben. Das musst du nur selten ändere diesen Wert.
Quelle: Ссылка
Ich bin mir nicht sicher, ob es etwas nativeres gibt, um das zu erledigen, aber es scheint einen Befehl zu geben, der die SWF-Datei hackt fügen Sie ein ScriptLimits-Tag hinzu , um die Zeitüberschreitung zu verlängern.
Ich empfehle Ihnen, Ihre Funktion in kleinere Blöcke zu zerlegen und sie über mehrere Frames zu verteilen. Auf diese Weise können Sie eine Fortschrittsanimation anzeigen und die Flash-Anwendung reagiert nicht mehr. Wenn Sie zum Beispiel über 1000 Elemente durchlaufen müssen, machen Sie 100 in einem Frame, dann weitere hundert im nächsten Frame usw., bis Sie alle verarbeitet haben. Ich würde nicht empfehlen, deine swf zu hacken.