我在Flex中开发一个AIR应用程序,用于处理不同的SWF。我发现一些问题,因为我正在玩的这些SWF很重。我发现动画不流畅并导致CPU使用率图表变高(我的原因是因为Flex的单线程架构)。因此,我计划为我的应用程序提供多进程架构。像谷歌Chrome一样的东西。我有一个主应用程序作为一个进程,其他SWF将在单独的进程中播放,但应该在主应用程序窗口中看到。如何在Flex中实现这一目标?谢谢!
答案 0 :(得分:1)
使用AIR尝试此操作不会有任何好运。也许使用Flash Player,因为您可以将HTML页面用作周围容器,但是您没有AIR的选项。
必须要说的是,如果您遇到这样的性能问题,几乎可以肯定的是,您可以在提高性能方面做得更好。
而不是修复症状(App运行缓慢),如何处理原因(导致应用程序运行缓慢的代码)?
答案 1 :(得分:1)
不幸的是,flash运行时是单线程的。但是,您可以通过明智地使用事件来模拟线程。通过让大型代码块分成较小的一小部分方法来调用事件,可以让flash播放器处理执行代码的时间。
我强烈建议您阅读弹性赛道:http://drawlogic.com/2008/04/22/a-peek-into-the-as3-and-avm2-virtual-machine-and-elastic-racetrack/
答案 2 :(得分:1)
另一种方法是将您的逻辑分配到多个SWF文件中,并让它们通过LocalConnection进行通信。如果我没弄错的话,在Chrome中,每个flash播放器实例都应该有自己的进程;你应该能够以这种方式消耗大量的CPU。
答案 3 :(得分:0)
这是不可能的,因为Flash播放器不允许多个线程。希望他们将来能改变这种状况。