ExternalInterface性能:寻找一些最佳实践/技巧

时间:2008-10-28 16:49:57

标签: flash actionscript

我在Windows应用程序的UI中使用Flex 3(Flash播放器作为嵌入式ActiveX控件),并使用ExternalInterface(主要是Flex应用程序,而不是out)在它们之间传递数据。然而,我发现性能非常糟糕,特别是对于较大的(即自定义)对象;我们制作的EI调用次数越多,自定义对象传入的次数越多,性能就越难以下降。

我假设在序列化这些对象时有很多开销,所以我想知道,有没有以这种特殊方式使用ExternalInterface的最佳实践?关于这个问题的文件似乎没有那么多。

比如说,将一大块XML作为字符串传递给播放器控件并使用Flex解​​析它比将其作为自定义对象传递更好吗? Flex应用程序需要与其主机应用程序进行相对紧密的集成,如何在不牺牲性能的情况下最好地使用ExternalInterface? EI性能是Adobe正在解决的问题吗?球员9和10之间的任何实施差异?我们应避免哪些事情才能充分利用此功能?

提前致谢!

克里斯

2 个答案:

答案 0 :(得分:4)

只是为了与可能感兴趣的任何人分享答案,来自Adobe的非官方答案(在上个月的MAX会议上由一些Adobe工程师证实)是,通过ExternalInterface编组超过30KB左右的数据将是导致性能下降。一点点的数据,没有问题 - 但更大的块,无论类型等,都会大大减慢速度。

显然,这是一个众所周知的问题,不幸的是,Flash 10似乎没有提供太多改进。所以在此期间,一个可行的解决方案是使用ExternalInterface来处理小事,但是要将更重的提升留给URLLoader和XML或JSON解析器。希望有所帮助 - 如果有人遇到这个并且需要更详细的指导,请随时直接与我联系。

答案 1 :(得分:4)

Brad Neuberg似乎付出了很多努力来解决这个问题。他已在

发布了一个解决方法

http://codinginparadise.org/weblog/2006/02/how-to-speed-up-flash-8s.html