我有一个用flash写的应用程序(实际上它是用Haxe编写的,在SHWX下运行,但这里并不重要)。我有一个非常复杂的任务,消耗大量的CPU能力,有时执行超过15秒。如果发生这种情况,我会收到一条错误消息“脚本的执行时间超过了15秒的默认超时时间。”一切都崩溃了。
我知道我可以使用continuation来阻止这种情况发生但有没有办法延长'默认超时期限'?它是一个开发人员工具,责任并不重要。
答案 0 :(得分:2)
另一种方法是通过-swf-lib开关链接基于swfmill的swf并在那里设置这个ScriptLimits标签,haxe将重新使用它。
答案 1 :(得分:1)
在CS3 +中你只需在发布时设置swf的“脚本时间限制”属性 - 它位于发布设置的flash选项卡中
答案 2 :(得分:1)
测试应用程序时,请注意scriptTimeLimit 属性。如果应用程序需要很长时间才能初始化,请使用Flash Player 警告用户脚本导致Flash Player运行缓慢 提示用户中止应用程序。如果是这种情况, 您可以设置标记的scriptTimeLimit属性 更长的时间,以便Flex应用程序有足够的时间 初始化。
但是,scriptTimeLimit属性的默认值为60 秒,也是最大值,因此您只能增加该值 如果您之前已将其设置为较低的值。你很少需要 改变这个值。
来源:http://livedocs.adobe.com/flex/3/html/help.html?content=performance_05.html
答案 3 :(得分:0)
我不确定是否有更多原生内容可以完成此操作,但似乎有command that hacks the SWF to add a ScriptLimits tag来延长超时时间。
答案 4 :(得分:-2)
我建议将你的功能分成更小的块并将它们分散到多个帧上。这样您就可以显示进度动画,Flash应用程序也不会无响应。因此,例如,如果您必须循环超过1000个项目,则在一个帧中执行100个,然后在下一个帧中执行另外100个项目,直到您完全处理它们为止。我不建议你乱砍你的瑞士法郎。