我有一个用 flash 编写的应用程序(实际上它是用 Haxe 编写的并在 SHWX 下运行,但这在这里并不重要)。我有一个非常复杂的任务,消耗大量 CPU 资源,有时执行时间超过 15 秒。如果发生这种情况,我有一个错误,说“脚本执行的时间比默认超时时间为15秒更长。”一切都崩溃了。

我知道我可以使用延续来阻止这种情况发生,但是有没有办法延长“默认超时期限”?它是一个开发人员工具,响应式并不重要。

有帮助吗?

解决方案

另一种方法是链接 swf工厂-based swf 通过 -swf-lib 开关并在那里设置此 ScriptLimits 标记,haxe 将重新使用它。

其他提示

在 CS3+ 中,您只需在发布时设置 swf 的“脚本时间限制”属性 - 它位于发布设置的 Flash 选项卡中

测试应用程序时,请注意ScriptTimelimit属性。如果应用程序需要太长时间来初始化,则Flash Player警告用户脚本正在使Flash Player缓慢运行,并提示用户中止应用程序。如果是这种情况,则可以将标签的脚本Timelimit属性设置为更长的时间,以便Flex应用程序有足够的时间来初始化。

但是,那 脚本Timelimit属性的默认值为60秒,这也是最大值, ,因此,只有以前将其设置为较低的值时,您才能增加该值。您很少需要更改此值。

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

我不确定是否有更原生的东西可以完成这项工作,但似乎有一个 破解 SWF 以添加 ScriptLimits 标记的命令 以延长超时时间。

我建议将您的函数分成更小的块并将它们分布在多个框架上。这样您就可以显示进度动画,并且 Flash 应用程序不会变得无响应。例如,如果您必须循环超过 1000 个项目,则在一帧中执行 100 个项目,然后在下一帧中执行另外 100 个项目,依此类推,直到处理完所有项目。我不建议破解您的 swf。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top