如何延长Flash应用程序中的默认超时时间?

问题描述:

我有一个用flash编写的应用程序(实际上它是在Haxe中编写的,在SHWX下运行,但这里没关系)。我有一个非常复杂的任务,消耗大量的CPU能力,有时会执行超过15秒。如果发生这种情况,我得到一个错误,说'脚本执行的时间超过了15秒的默认超时时间。'一切都崩溃了。如何延长Flash应用程序中的默认超时时间?

我知道我可以使用延续来阻止这种情况的发生,但是有没有办法延长'默认超时时间'?这是一个开发者工具,responsivnes并不重要。

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

我不确定是否有更原生的东西来完成这件事,但似乎有一个command that hacks the SWF to add a ScriptLimits tag延长超时时间。

我建议把你的功能分成更小的块,并将它们分散到多个帧中。这样您可以显示进度动画,并且Flash应用程序不会变得没有响应。因此,例如,如果您必须循环1000个以上的项目,则在一个框架中执行100个,然后在下一个框架中执行100个,直到完成全部处理。我不会建议盗用你的瑞士法郎。

CS3中,你只需设置的SWF的“脚本时间限制”属性在发布时 - 这是在发布设置

当您测试您的应用程序闪光灯选项卡,请注意scriptTimeLimit 的属性。如果应用程序需要很长时间进行初始化,Flash Player 会向用户发出警告,指示脚本正在导致Flash Player运行缓慢,并且 会提示用户中止应用程序。如果出现这种情况,您可以将标记 的scriptTimeLimit属性设置为更长的时间,以便Flex应用程序有足够的时间初始化 。

然而,scriptTimeLimit属性的默认值是60秒 ,这也是最大,因此,如果您以前将其设置为较低的值,你只能增加值 。您很少需要 更改此值。

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