Flash:如何打破因没有空闲时间而导致的锁定?

Flash:如何打破因没有空闲时间而导致的锁定?,flash,apache-flex,actionscript-3,Flash,Apache Flex,Actionscript 3,我有一个Flash 10程序,当它在一个处理器很弱的设备上运行时会被锁定,比如上网本。具体地说,它进入一种状态,在鼠标按下事件之后,它在ENTER_FRAME事件处理程序中执行非常繁重的处理,并期望在鼠标向上事件之后停止执行此处理。问题是,由于帧事件处理程序之后没有剩余的空闲时间,因此永远不会收到鼠标向上移动事件,因此进程锁定在一个无限循环中。是的,我可以做一些事情,比如降低帧速率,尽我所能减少每一帧中发生的处理,但是有什么铁包子的方法来打破这一局面吗?是否有某种方法可以检测到不存在空闲时间?还

我有一个Flash 10程序,当它在一个处理器很弱的设备上运行时会被锁定,比如上网本。具体地说,它进入一种状态,在鼠标按下事件之后,它在ENTER_FRAME事件处理程序中执行非常繁重的处理,并期望在鼠标向上事件之后停止执行此处理。问题是,由于帧事件处理程序之后没有剩余的空闲时间,因此永远不会收到鼠标向上移动事件,因此进程锁定在一个无限循环中。是的,我可以做一些事情,比如降低帧速率,尽我所能减少每一帧中发生的处理,但是有什么铁包子的方法来打破这一局面吗?是否有某种方法可以检测到不存在空闲时间?还是有办法强制接收交互式鼠标事件?或者,我可以在输入帧代码中,检测鼠标的状态(向上或向下),而不获取鼠标事件吗?

如果Flash正在删除鼠标事件,则没有任何变量可供您自己跟踪。您将监视鼠标数据的变量取决于相同的事件


您应该更新您的算法,将其处理分解为更小的、可重复的块。鼠标向下应该设置一个标志,使该算法在每次进入帧时处理几个块,直到鼠标向上清除该标志。理想情况下,您的算法将跟踪每秒的帧数,并调整每帧的工作量,以将FPS保持在合理的值

如果Flash正在删除鼠标事件,则您无法通过观察任何变量来跟踪它。您将监视鼠标数据的变量取决于相同的事件


您应该更新您的算法,将其处理分解为更小的、可重复的块。鼠标向下应该设置一个标志,使该算法在每次进入帧时处理几个块,直到鼠标向上清除该标志。理想情况下,您的算法将跟踪每秒的帧数,并调整每帧的工作量,以将FPS保持在合理的值

不幸的是,Flash中没有线程,也没有“真正”的多任务处理


但是尝试一下实现。它可以帮助您将CPU占用率高的操作划分为更小的部分,这些部分在帧更新之间执行。

不幸的是,Flash中没有线程,也没有“真正”的多任务处理


但是尝试一下实现。它可以帮助您将CPU占用率高的操作划分为更小的部分,这些部分在“中间”帧更新时执行。

谢谢,Nathan。这就是我的想法。谢谢你,内森。这就是我思考的方向。