AS3 错误:错误#1502:脚本的执行时间超过了15秒的默认超时时间。
有没有办法在特定的代码块上暂时禁止这个?
我正在创建一个巨大的动态3d对象数组,1000x1000x1000,需要构建才能真正完成初始化。
答案 0 :(得分:6)
您最好的选择是尝试重构您的代码。也许您可以使用本教程来处理您遇到的确切问题。
答案 1 :(得分:3)
增加超时是一种选择,但我还建议考虑一种方法,即在多个帧上构建阵列,即将工作分成单独的作业。只要您每隔一段时间将控制权交还给Flash Player,就不会出现此异常。
我不确定您问题的具体细节,但是您需要找到一种并行化的方法,或者只是简单地细分您的计算。如果您的算法以一个主循环为中心,那么考虑创建一个函数,该函数获取记录单个迭代的上下文所需的所有参数。然后,创建一个简单的控制循环,它将调用此函数并确定何时等到下一帧和何时不到。利用AS3闭包也可以提供帮助。
答案 2 :(得分:0)
在“发布设置”(Flash)中查找脚本执行时间限制。如果你正在使用Flex,那么this one可能很有用:http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.html(检查default-script-limits,max-recursion-depth,max-execution-time)。哦!似乎没有办法让它在特定的代码片段上以不同的方式运行(这是一个全局设置)。
答案 3 :(得分:0)
我不批准增量超时选项。因为所有这些时间你的应用程序只是挂起整个Flash播放器。而且,正常的用户认为它已经失效,并且认为它会退出。
检查一下:How to show the current progressBar value of process within a loop in flex-as3?
然后,您甚至可以展示对您和用户更有信心的进展。