2008-10-28 50 views
3

我使用Flex 3在Windows应用程序(Flash播放器作为一个嵌入式的ActiveX控件)的UI,以及它们之间的数据传递与ExternalInterface的(主要为Flex应用程序,而不是出)。但我发现,性能非常糟糕,特别是对于较大(即自定义)的对象;我们制作的EI电话越多,传入的自定义对象越多,难度就越大。ExternalInterface的性能:寻找一些最佳做法/提示

我假设有一个在序列化这些对象的开销好对付,所以我不知道,是否有任何的最佳做法在那里对这种特别的方式使用ExternalInterface的?在这方面的文件方面似乎还没有太多。

是更好,比方说,以XML的一大块传递到播放器控制作为一个字符串,并使用Flex解​​析它,而不是把它作为一个自定义的对象,作为一个规则? Flex应用程序如何与主机应用程序进行相对紧密的整合,最好使用ExternalInterface而不牺牲性能? EI性能是Adobe解决的问题吗?玩家9和10之间的任何实施差异?我们应该避免什么类型的东西才能充分利用此功能?

在此先感谢!

克里斯

回答

4

只是为了与其他人分享答案谁可能会感兴趣,从Adobe非官方答案(由上个月的MAX大会少数的Adobe工程师确认)是编组,也就是说,在30KB左右通过ExternalInterface的数据将导致性能下降。一点点的数据,没有问题 - 但更大的块,无论类型等,都会大大减缓。

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