Question

J'ai une application écrite en flash (en réalité, elle est écrite en Haxe et est exécutée sous SHWX, mais cela n'a pas d'importance ici). J'ai une tâche assez complexe qui consomme beaucoup de puissance de calcul et s'exécute parfois pendant plus de 15 secondes. Si cela se produit, le message d'erreur "Un script a été exécuté plus longtemps que le délai d'expiration par défaut de 15 secondes" s'affiche. et tout se bloque.

Je sais que je peux utiliser des continuations pour empêcher cela, mais existe-t-il un moyen de prolonger ce "délai d'expiration par défaut"? C’est un outil de développement, peu importe la réactivité.

Était-ce utile?

La solution

Une autre méthode consiste à lier un swfmf à base de swf via le commutateur -swf-lib et à y définir la balise ScriptLimits haxe le réutilisera alors.

Autres conseils

dans CS3 +, vous définissez simplement la " limite de temps de script " propriété du swf au moment de la publication - elle se trouve dans l'onglet Flash des paramètres de publication

  

Lorsque vous testez votre application, tenez compte du script scriptTimeLimit.   propriété. Si l’initialisation d’une application prend trop de temps, Flash Player   avertit les utilisateurs qu’un script force Flash Player à s'exécuter lentement et   invite l'utilisateur à abandonner l'application. Si telle est la situation,   vous pouvez définir la propriété scriptTimeLimit de la balise   plus longtemps pour que l'application Flex dispose de suffisamment de temps pour   initialiser.

     

Cependant, la valeur par défaut de la propriété scriptTimeLimit est 60   secondes, ce qui est également le maximum , de sorte que vous ne pouvez augmenter la valeur   si vous avez précédemment défini une valeur inférieure. Vous avez rarement besoin de   changer cette valeur.

Source: http: //livedocs.adobe. com / flex / 3 / html / help.html? content = performance_05.html

Je ne sais pas s'il existe quelque chose de plus natif pour y arriver, mais il semble y avoir un commande qui pirate le fichier SWF pour ajouter une balise ScriptLimits afin de prolonger le délai.

Je suggère de diviser votre fonction en petits morceaux et de les répartir sur plusieurs images. De cette façon, vous pouvez afficher une animation de progression et l'application Flash ne cessera de répondre. Ainsi, par exemple, si vous devez boucler plus de 1 000 éléments, vous réalisez 100 dans une image, puis cent autres dans l'image suivante, etc., jusqu'à ce que vous les ayez tous traités. Je ne recommanderais pas de pirater votre swf.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top